用java编写坦克大战的问题

2025-01-03 06:48:22
推荐回答(2个)
回答1:

我觉得是缺少重绘,可以试验一下,在线程启动后你过一会按一下按键,要是屏幕中子弹位置移动就肯定是缺少重绘:
子弹线程启动后每移动一次要重绘一次,在你子弹类的run方法移动子弹的代码中添加repaint(),如果是用的GameCanvas可以用别的方法重绘,你可以试验一下。总之就是重绘!
如果不是我也不清楚了,祝你好运~

回答2:

对于这个小游里面的类的抽象很重要,对坦克及其它类我在这里面就不定义了,其实J2SE的API里面就有关于图形重叠的算法,就是这个intersects()方法,具体伪代码如下:
public boolean collidesWithTanks(java.util.List tanks) {
for(int i=0; i Tank t = tanks.get(i);
if(this != t) {
if(this.live && t.isLive() && this.getRect().intersects(t.getRect())) {
this.stay();
t.stay();
return true;
}
}
}
return false;
}
您可以根据自己的实际需求来改写,在我的百度文库里面有关于“坦克大战”的所有代码,如果有需要我可以把代码发给你,可以通过百度HI联系我。