我一直在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