动作脚本 3 - 数组问题
action script 3 - issue with arrays
所以我在这里检查子弹何时击中了我的游戏中的敌舰。我试图通过对象名称检查数组中敌人的类型,以便为该敌人做特定的事情,代码如下。
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");
}
您可以使用关键字is
if (enemies[j] is EnemyYellow) {
trace("do something");
}
您还可以向 Enemy 添加方法 getType class。此解决方案对于这种特殊情况并不更好,但在其他一些情况下可能有用。例如,您可以拥有相同 class 但返回不同类型的敌人。
if (enemies[j].getType() == EnemyType.ENEMY_YELLOW) // do something
所以我在这里检查子弹何时击中了我的游戏中的敌舰。我试图通过对象名称检查数组中敌人的类型,以便为该敌人做特定的事情,代码如下。
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");
}
您可以使用关键字is
if (enemies[j] is EnemyYellow) {
trace("do something");
}
您还可以向 Enemy 添加方法 getType class。此解决方案对于这种特殊情况并不更好,但在其他一些情况下可能有用。例如,您可以拥有相同 class 但返回不同类型的敌人。
if (enemies[j].getType() == EnemyType.ENEMY_YELLOW) // do something