我一直在AS3上做一个简单的游戏,但我似乎无法为不同类型的敌人增加运动。到目前为止,它只适用于1种敌人类型:AS3 - 控制不同敌人类型的敌人行为
enemyType1是敌人的动画片段。
var enemyType1:EnemyType1 = new EnemyType1(0, 0);
var enemies:Array = new Array();
而且在我的游戏圈,笔者随机产卵的敌人,并有一个循环,它通过所有的敌人循环,并执行对每个敌人的移动。
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
}
}
除非它不工作。我无法识别敌人[我]是一个物体。我也研究过每种敌人类型的多维阵列,但无法使其工作。
所以问题是,我如何检测数组中的特定对象?或者这是完全错误的方式去控制多种敌人类型?
谢谢。
咄!由于效率的原因,我决定使用switch语句,而使用getQualifiedClassName。谢谢。 – Effsy