【发布时间】:2013-08-24 14:38:15
【问题描述】:
我一直在 AS3 中开发一个简单的游戏,但我似乎无法为不同类型的敌人添加移动。到目前为止,它仅适用于 1 种敌人类型:
enemyType1 是敌人的影片剪辑。
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] 是一个对象。我还查看了每种敌人类型的多维数组,但无法让它发挥作用。
所以问题是,如何检测数组中的特定对象? 或者这是控制多种敌人类型的完全错误的方式?
谢谢。
【问题讨论】:
标签: arrays actionscript-3 flash object