我在我的程序中遇到了问题。我正在做一个小人类项目。基本上我试图在已经绘制的迷宫上显示药丸。
所以迷宫是一个g2图形,我使用一个简单的txt文件将数字迷宫转换为图形迷宫。
我告诉该计划的内容如下:
以下是更多详细信息所需的代码部分
@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
部分,在这种情况下它并不真正相关。
我认为解决这个问题的方法是将所有的药丸图像放在前面。问题是我找不到一种简单的方法。
答案 0 :(得分:0)
我的问题的解决方案很简单我认为如果有人遇到同样的问题你会分享它是不错的你只需要另外一个循环来绘制图像基本上我同时填充矩形我正在打印图像所以我只需要在两个不同的循环中分离这两个操作