我正在尝试制作一个游戏,其中包括将活动敌人列表保存为数组。 这是我的代码:
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 :(得分:0)
尝试将敌人推向阵列:
enemies.push(new enemy(testDroid, 400, 400, 0));
enemies.push(new enemy(testDroid2, 400, 400, 0));