动作脚本3 - 数组问题

时间:2015-02-08 02:25:58

标签: arrays actionscript-3

所以我在这里检查一下子弹击中我游戏中的敌舰。我试图通过对象名检查数组中的敌人类型,为该敌人做特定的事情,代码在下面。

for (var i = bullets.length - 1; i >= 0; i--) {
        for (var j = enemies.length - 1; j >= 0; j--) {
            if (_bullets[i].hitTestObject(enemies[j])) {

                if (enemies[j] == EnemyYellow)  {
                        trace("do something");
                    }

                stage.removeChild(enemies[j]);
                stage.removeChild(bullets[i]);
                bullets.splice(i, 1);
                enemies.splice(j, 1);
                return;
            }
        }
    }

这就像我认为会起作用,但如果有人能帮助我,我会很感激,因为我不知道该怎么做。

    if (enemies[j] == EnemyYellow) {
           trace("do something");
        }

2 个答案:

答案 0 :(得分:2)

您可以使用关键字is

if (enemies[j] is EnemyYellow) {
     trace("do something");
}

答案 1 :(得分:1)

您还可以将方法getType添加到Enemy类。对于这种特殊情况,该解决方案并不是更好,但在某些其他情况下可能有用。例如,您可以拥有相同类别的敌人但返回不同的类型。

if (enemies[j].getType() == EnemyType.ENEMY_YELLOW) // do something