2015-02-08 100 views
0

因此,我要检查子弹在我的游戏中撞击敌方船只的时间。我试图通过对象名来检查数组中的敌人类型,以便为该敌人执行特定的事情,代码如下。动作脚本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

您可以使用关键字is

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

您还可以添加一个方法GetType敌人类。这种解决方案对于这种特殊情况并不好,但在其他一些情况下可能会有用。例如,您可以拥有同一班级的敌人,但返回不同的类型。

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