一个关于做坦克大战地图编辑器遇到的问题

鱼老壳 2012-12-08 04:32:04
第一个问题:首先,我是想用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);删除,但同时把背景色也擦掉了。。。我再设也设不会来。不知道怎么回事。

小弟新手,恭请各路大神指点。或者和交流讨论一下。必要我还可以把源代码发上来。
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
鱼老壳 2012-12-17
  • 打赏
  • 举报
回复
肯定会有画错的时候啊 ,这是做的一个坦克大战地图编辑器,地图肯定会改变的啊。
司机 2012-12-09
  • 打赏
  • 举报
回复
为什么不在画之前根据参数判断它是否会画错,而是在画错之后再删除?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧