韩顺平老师的坦克大战,为什么第一个坦克爆炸,第二个坦克不爆炸

JavaScript010

韩顺平老师的坦克大战,为什么第一个坦克爆炸,第二个坦克不爆炸,第1张

因为当打到第一辆坦克的时候才创建一个炸弹,这个炸弹此时放入vector中,当击中第二辆坦克的时候,第一颗炸弹才会爆炸。。。所以才会出现第一辆坦克没有爆炸效果,因为在击中第一辆坦克之前,vector里并没有放入炸弹。想要第一辆坦克有爆炸效果,那么在击中第一辆坦克之前就创建一颗炸弹,放入vector中。。。

switch(ets.direct)

确定是检测tank的移动方向吗?全消失肯定是检测出问题了,认为全打到了

去调试轻易就能找到问题,看看各变量输出都是啥

看样子你的子弹只能向一个方向飞啊

你的tank是25*19的

还不如先把HitEnemyTank改精简一点,不要switch直接下面就行

if(b.x>ets.x-19&&b.x<ets.x+19&&b.y>ets.y-25&&b.y<ets.y+25)

{ b.isLive=false

ets.isLive=false

}

看这下能正常不(会有误差,但不应一下全没了)

你写代码啊把该加的括号都加上,这也是好的习惯b.x>(ets.x-19)&&...

另外,这个检测应是实时的不断的,为啥不用引擎呐

在你的paint函数中加上下面三句话就ok了。

g.drawImage(image1, 100, 100, 30, 30, this)

g.drawImage(image2, 100, 100, 30, 30, this)

g.drawImage(image3, 100, 100, 30, 30, this)

在super下面写上。