第一个问题:首先,我是想用MAP【】【】一个二维数组来记录地图哪个地方要画,然后用两个for循环把整个画面重画。map改变后每次调用
private void drawMAP(Graphics g,int x,int y) {
for(int i=0;i<=24;i++) {
for(int j=0;j<=24;j++) {
if(MAP[i][j]==1) {
g.drawImage(ii[1].getImage(), x*wallWidth,y*wallWidth,null);
}
else if(MAP[i][j]==2) {
g.drawImage(ii[2].getImage(),x*wallWidth,y*wallWidth,null);
}
else if(MAP[i][j]==3) {
g.drawImage(ii[3].getImage(), x*wallWidth, y*wallWidth, null);
}
}
}
}
但结果有时可以,有时又不行。第二个问题:试了很久后我换了一种方法不重画整个界面
private void drawMAP(Graphics g, int x, int y) {
if(MAP[x][y] ==0) {
g.clearRect(x*wallWidth, y*wallWidth, wallWidth,wallWidth);
map.setBackground(Color.BLACK);
}
    else if (MAP[x][y] == 1) {
g.drawImage(ii[1].getImage(), x * wallWidth, y * wallWidth, null);
} else if (MAP[x][y] == 2) {
g.drawImage(ii[2].getImage(), x * wallWidth, y * wallWidth, null);
} else if (MAP[x][y] == 3) {
g.drawImage(ii[3].getImage(), x * wallWidth, y * wallWidth, null);
}
}结果又可以了。但问题又来了,若画错了的话,不能删除。我就用g.clearRect(x*wallWidth, y*wallWidth, wallWidth,wallWidth);删除,但同时把背景色也擦掉了我再设也设不会来。不知道怎么回事。小弟新手,恭请各路大神指点。或者和交流讨论一下。必要我还可以把源代码发上来。