我目前正在编写游戏,遇到了一个恼人的故障。偶尔,当您在游戏中杀死一个敌人时,它会掉落额外的货币,并且屏幕上的另一个敌人将从敌人列表中删除。但是,从敌人列表中删除的第二个敌人仍会出现在屏幕上,并且仍会向玩家射击。下面是碰撞公式、敌人破坏序列和子弹命中检查序列的代码片段。
碰撞公式:
public function testCollision(enemy:Entity):Boolean{
var eX:Number = enemy.collision.xPos
var eY:Number = enemy.collision.yPos
var eSL:Number = enemy.collision.SideLength/2
if(eX-xPos<(SideLength/2)+eSL && eY-yPos<(SideLength/2)+eSL && eX-xPos>-(SideLength/2)-eSL && eY-yPos>-(SideLength/2)-eSL){
return true
}else{
return false
}
}
敌人破坏顺序:
if(deathVar){
view.transparency -= 1/20
if(view.transparency<0.1){
var cur = new PixelCurrency(2)
cur.collision.xPos = collision.xPos
cur.collision.yPos = collision.yPos
entityCreated.dispatch(cur)
destroy()
}
}
子弹命中检查:
for each (var enemy:Entity in Game.entities){
if(enemy.allies == Pixapocalypse.EnemyFaction){
if(collision.testCollision(enemy)){
if(enemy.life){
enemy.life.changeHealth(-2)
this.sound.playSound(new basicHitSound())
this.destroy()
break
}
else{
}
}
}
}
如果您需要任何额外的信息,请告诉我,我非常感谢您的帮助。