0

私は現在ゲームのコーディングを行っており、迷惑な不具合に遭遇しました。時折、ゲーム内で敵を倒すと追加の通貨がドロップし、画面上の別の敵が敵リストから削除されます。ただし、敵リストから削除されたこの 2 番目の敵は引き続き画面に表示され、プレイヤーを撃ち続けます。以下は、衝突式、敵の破壊シーケンス、および弾丸のヒットチェック シーケンスのコード スニペットです。

衝突式:

    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{

                    }
                }
            }
        }

追加情報が必要な場合は、お知らせください。ご協力いただきありがとうございます。

4

1 に答える 1

0

Enemy.life < 0 の場合はどうなりますか?

于 2013-04-17T11:57:07.393 に答える