0
我在我的程序中遇到了一个问题。我正在做一个小小的男人项目。基本上我试图在已经画出的迷宫上展示药片。在图形前面显示图像 - 简单方法 -
所以迷宫是一个g2图形,我用一个简单的txt文件将数字迷宫转换成图形。
就是我要告诉该程序是为以下几点:
- 如果你打一个“1”你把路(黑),
- 如果你打一个“2”你把丸(进口药片图像),并
- 如果你打一个“3”你把一个超级药丸(进口superpill图像)
这是这是需要更多的细节
代码的一部分@Override
public void draw(Graphics g) {
for(int y=0;y<nbLin;y++){
for(int x=0;x<nbCol;x++){
if(charAt(x,y)!='0'){
g.fillRect(x*STEP-14,y*STEP-14,28,28); // put a road
}
if(charAt(x,y)=='2'){
g.drawImage(pill.getSubimage(0,0,28,28),x*STEP-14,y*STEP-14,null);// put a pill
}
if(charAt(x,y)=='3'){
g.drawImage(superpill.getSubimage((frame2/2)*30,0,28,28),x*STEP-14,y*STEP-14,null); //put a super pill
}
}
}
如果我走这条线:
g.fillRect(x*STEP-14,y*STEP-14,28,28)
为什么我乘以STEP
坐标的原因仅仅是因为我用同样的STEP
乘以屏幕尺寸,所以我不得不改变所有的新点的坐标我相信相同的比例。
我减去14的原因是由于pacman的大小是28,所以我只是从每个点减去一半的pacman大小以便围绕他围绕road
(Rect)居中。
请注意,subImage
部分在这种情况下并不真正相关。
针对这个问题的解决方案,我认为将所有的药丸图像放在前面。问题是我没有找到一个简单的方法来做到这一点。
您是否在绘制药丸之前绘制背景? – user4759923
“这个问题的解决方案” - 你没有说明问题所在。 – RealSkeptic
我想这个问题的答案是前后都是由于maze.txt结构,例如当程序导入一个药丸时,如果它碰到一个'1',那么它会填充背景,发生90% –