2013-08-31 60 views
0

我想做一個遊戲,涉及保存活躍的敵人列表作爲一個數組。 這裏是我的代碼:替換陣列的地方屬性

function enemyBase(shipRace, shipClass, shipName, health, armour, cloak, regen, speed, dps, suicide, ionImmunity){ 
this.shipRace = shipRace; 
this.shipClass = shipClass; 
this.shipName = shipName; 
}; 

function enemy(base, x, y, direction){ 
this.base = base; 
this.x = x; 
this.y = y; 
this.direction = direction; 
}; 
var enemies = []; 

var testDroid = new enemyBase('Test', 'Test', 'EnemyBug', 1, 0, 0, 0, 1, 1, false, false); 
var testDroid2 = new enemyBase('Test', 'Test', 'EnemyBug', 2, 0, 0, 0, 1, 1, false, false); 
enemies[0] = new enemy(testDroid, 400, 400, 0); 
enemies[1] = new enemy(testDroid2, 400, 400, 0); 

它不工作,因爲它不能在陣列 直接分配屬性到一個地方,我試圖訪問它是這樣的:

drawEnemy(enemies[0]); 
function drawEnemy(enemy){ 
ctx.translate(enemy.x, enemy.y); 
}; 

我可以通過創建一個數組來存儲每個屬性和一個索引數組來解決這個問題,但這需要大量的重寫。 任何人都可以想到更好的方法嗎?

+0

考慮使用對象爲默認設置,而不是一堆參數。 – elclanrs

回答

0

嘗試推你的敵人數組:

enemies.push(new enemy(testDroid, 400, 400, 0)); 
enemies.push(new enemy(testDroid2, 400, 400, 0));