我觉得是缺少重绘,可以试验一下,在线程启动后你过一会按一下按键,要是屏幕中子弹位置移动就肯定是缺少重绘:
子弹线程启动后每移动一次要重绘一次,在你子弹类的run方法移动子弹的代码中添加repaint(),如果是用的GameCanvas可以用别的方法重绘,你可以试验一下。总之就是重绘!
如果不是我也不清楚了,祝你好运~
对于这个小游里面的类的抽象很重要,对坦克及其它类我在这里面就不定义了,其实J2SE的API里面就有关于图形重叠的算法,就是这个intersects()方法,具体伪代码如下:
public boolean collidesWithTanks(java.util.List
for(int i=0; i
if(this != t) {
if(this.live && t.isLive() && this.getRect().intersects(t.getRect())) {
this.stay();
t.stay();
return true;
}
}
}
return false;
}
您可以根据自己的实际需求来改写,在我的百度文库里面有关于“坦克大战”的所有代码,如果有需要我可以把代码发给你,可以通过百度HI联系我。