О, чувак, я думаю, что у меня есть.
Ваш подход в порядке, но я думаю, что вижу, где происходит ошибка. Насколько я вижу, вы добавляете блок врага каждый раз, когда зацикливаетесь на одном блоке врага Блока - затем вы добавляете этот блок врага в массив (например,) 5 раз.
, следовательно, вы будете иметь 5 одинаковых ссылок на блок врага в блоке врага.
- Таким образом, у вас будет вражеский блок в одно и то же время, каждый шаг за секунду для цикла.
Если вы намеревались иметь 5 разных вражеских блоков на сцене, вам нужно сделать что-то вроде этого:
for(var i:int =0; i<= count - 1; i++){
// add class to MC
/*
Move this line of code into the for loop, creating a new version every time.
*/
enemyBlockMC = new MovieClip;
/*
Also move this into your loop, ensuring you make a new EnemyBlock() every time
*/
var enemyBlock:MovieClip = new EnemyBlock(); // assign EnemyBlock class to enemyBlock
enemyBlockMC.addChild(enemyBlock);
// randomize position
enemyBlock.x = Math.round(Math.random()*mapWidth);
enemyBlock.y = Math.round(Math.random()*mapHeight);
// set motion
enemyBlock.movement = 5;
// add MC to array
enemyArray.push(enemyBlockMC);
}
Таким образом, каждый раз, когда вы помещаете enemyBlockMC
в вражеский массив, это новая версия вражеского блока, заключенная в видеоклип.
С учетом вышесказанного у вас будет n число вражеских блоков, все из которых являются новыми версиями. Поэтому, когда вы наберете addChild(enemyArray[w]);
в своем втором цикле for, у вас будет новая версия каждый раз.
По сути (чтобы уточнить) enemyArray[0]
- это совершенно другой объект, чем enemyArray[2]
Надеюсь, это имеет смысл. - Если тебе нужно, чтобы я объяснил это снова, просто спроси.
Это то, что вы собирались?
Извините за форматирование кода - o_O