【发布时间】:2011-08-31 13:58:27
【问题描述】:
在我的碰撞检测代码中,子弹一旦发生碰撞就会被停用:
for(int j = 0; j < enemies.size(); j++){
//check for collision
if(bullets[i].isActive() && bullets[i].getSprite().collidesWith(enemies.get(j).getSprite())){
//remove bullet
removeBullet(i); //bullet is deactivated here, .isActive() will return false
if(enemies.get(j).damage(1)){
// --snip--
}
break;
}
}
项目符号被停用的唯一地方是在这段代码中。它们唯一被激活的地方是它们被创建的时候。
尽管如此,一颗子弹会造成多次伤害。 removeBullet() 触发爆炸动画,并播放多次。可能出了什么问题?
更新
这里是removeBullet()
private void removeBullet(int i){
if(bullets[i] == null) return;
bullets[i].deactivate();
makeSmallExplosion(bullets[i].getSprite().getX(),bullets[i].getSprite().getY());
bulletPool.recyclePoolItem(bullets[i]);
bullets[i] = null;
}
【问题讨论】:
-
发布 removeBullet 代码,对您到目前为止发布的内容无济于事。
标签: android collision-detection andengine