本帖最后由 陈军 于 2012-12-6 10:20 编辑
代码太多我就发张图片上来。。没有好看的坦克图。。不给力啊。
问题1:关于坦克身体互撞的算法。
ps: 我用了最笨的方法-----复制2个集合,然后嵌套循环遍历。根据边框相交判断。
然后让这个相撞的坦克改变方向,并马上移动。
问题2:坦克多了,整个画面有点卡卡的。有什么好办法么?
ps: 我虽然用了双缓冲,但是还是卡卡的。感觉可能是监听的线程太多了(每个新生子弹一个线程)。或者说
并发访问的问题。 敌人坦克我让它到一定时候自动移动和开枪。
最后顺便求好看的程序设计的图片,,或者谁收藏这样的素材网的。。给个链接。(百度搜索感觉不给力啊)
附上监听敌人所有坦克子弹的代码。。
@Override
public void run() {
try {
while (true) {
int cnt = autotanks.size();
for (int i = 0; i < cnt; i++) {
AutoTank autotank = autotanks.get(i);
List<Missile> missiles = autotank.getAutomissiles();
for (ListIterator<Missile> it = missiles.listIterator(); it.hasNext();) {
Missile m = it.next();
panel.addAutoMissile(m);
autoMissiles.add(m);
m.addListeners(Controller.this);
m.startListener();
it.remove();
}
cnt = autotanks.size();
}
Thread.sleep(Constants.DELAY);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
|