Добавление врагов - PullRequest
       2

Добавление врагов

0 голосов
/ 24 апреля 2011

ОК, значит, у меня есть лазерная пушка, и она стреляет лазерами (ну да ладно) с названием laser_mc, и я сейчас вбиваю врагов.Хотя есть одна проблема.Когда я добавляю врагов с именем bad, они добавляются, удаляются, а затем снова появляются где-то еще.

Вот мой код.Что я сделал не так?

var badadd:bad; badadd = new bad()

addEventListener(Event.ENTER_FRAME, createbad);
function createbad(event:Event):void {
    addChild(badadd);
    badadd.x = Math.random()*stage.width;
    badadd.y= Math.random()*stage.height;
}

addEventListener(Event.ENTER_FRAME, removebad);
function removebad(event:Event):void {
    if (laser_mc.hitTestObject(badadd)) {
        removeChild(badadd);
    }
}

1 Ответ

1 голос
/ 24 апреля 2011

Они удаляются и размещаются в другом месте, потому что вы используете цикл enter_frame здесь.Каждый раз, когда кадр срабатывает, ваша программа добавляет того же врага в случайном месте.Таким образом, он добавляет в случайном месте, удаляет его, а затем добавляет его в случайном месте снова и снова.

Вы можете попробовать что-то вроде этого:

Установите цикл for и заполнитемассив с врагами.Объявите массив как свойство класса \, EnemyArray.Как (псевдокод):

for i = 1 to 10
    var tempEnemy = new Enemy()
    EnemyArray[i].push(tempEnemy) // put the enemy in the array

Теперь, когда вам нужно добавить врага - он уже создан, поэтому вам просто нужно перейти:

addChild(tempEnemy[index]);   

Теперь вы можете циклически перемещаться по массивудля проверки попадания и т. д.

Дайте мне знать, если это слишком концептуально, и я напишу код немного подробнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...