网上查找有的答案说,因为第一个爆炸只是将爆炸实例装进了Vector,并没有到paint中去画,我就很奇怪,我是把爆炸装进线程中的,按理说爆炸装进Vector时 paint中的爆炸语句应该起作用的。总之我就是没懂为什么第一个坦克不爆炸。。。
public void paint(Graphics g)
{
super.paint(g);
for(int i=0;i<bzjh.size();i++)
{
Baozha bz=bzjh.get(i);
if(bz.shengcunqi>6)
{
g.drawImage(tp1, bz.x, bz.y, 30,30,this);
}
else if(bz.shengcunqi>3)
{
g.drawImage(tp2, bz.x, bz.y, 30, 30, this);
}else{
g.drawImage(tp3, bz.x, bz.y, 30, 30, this);
}
bz.suqsd();
if(bz.shengcunqi==0)
{
bzjh.remove(bz);//清除内存
}
}
}
下面的代码时添加爆炸代码,在线程中调用该方法
public boolean jzdf(Zidan zidan,Tank dt)
{
switch(dt.fangxiang)
{
case 0:
case 2:
if(zidan.x>dt.x&&zidan.x<dt.x+20&&zidan.y>dt.y&&zidan.y<dt.y+30)//比较坐标
{
zidan.pp=false;
dt.shengming=false;
dtk.remove(dt);
Baozha bz=new Baozha(dt.x,dt.y);
bzjh.add(bz);
}
break;