造成这种故障的原因是什么?

时间:2013-04-17 07:17:23

标签: actionscript-3

我正在编写一个游戏,并遇到了一个令人讨厌的故障。偶尔,当你在游戏中杀死敌人时,它会掉落额外的货币,屏幕上的另一个敌人将被从敌人中移除。然而,这个从敌人中移除的第二个敌人仍将在屏幕上,并仍将向玩家射击。下面是碰撞公式的代码片段,敌人破坏序列和子弹hitcheck序列。

碰撞公式:

    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()
            }
        }

Bullet hitcheck:

        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{

                    }
                }
            }
        }

如果您需要任何额外信息,请告诉我,我非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当Enemy.life&lt; 0?