0

私は AS3 で単純なゲームに取り組んできましたが、さまざまなタイプの敵の動きを追加することができないようです。これまでのところ、1 つの敵タイプに対してのみ機能します。

energyType1 は敵のムービークリップです。

var enemyType1:EnemyType1 = new EnemyType1(0, 0);
var enemies:Array = new Array();

そして、私のゲーム ループでは、敵をランダムにスポーンし、すべての敵をループして各敵の動きを実行する for ループを作成します。

if(Math.random() < 0.5)
{
    var newEnemyType1 = new EnemyType1(0, 0);
    enemies.push(newEnemyType1);
    addChild(newEnemyType1);
}

for (var i:int = 0; i < enemies.length; i++)
{
    //Movement
}

問題は、さまざまな種類の敵を作成し、敵がどの種類の敵であるかを判断して、正しい種類の動きが使用されるようにするときに発生します。これは次のようになります。

var enemyType1:EnemyType1 = new EnemyType1(0, 0);
var enemyType2:EnemyType2 = new EnemyType2(0, 0);
var enemies:Array = new Array();

そしてゲームループでは:

if(Math.random() < 0.5)
{
    var newEnemyType1 = new EnemyType1(0, 0);
    enemies.push(newEnemyType1);
    addChild(newEnemyType1);
    var newEnemyType2 = new EnemyType2(0, 0);
    enemies.push(newEnemyType2);
    addChild(newEnemyType2);
}

for (var i:int = 0; i < enemies.length; i++)
{
    if(enemies[i] == EnemyType1)
    {
        //EnemyType1 Movement
    }
    else if(enemies[i] == EnemyType2)
    {
        //EnemyType2 Movement
    }
}

それが機能しないことを除いて。敵[i]を物体として認識できません。敵の種類ごとに多次元配列も調べましたが、うまくいきませんでした。

問題は、配列内の特定のオブジェクトを検出するにはどうすればよいかということです。それとも、これは複数の敵タイプを制御するための完全に間違った方法ですか?

ありがとう。

4

3 に答える 3