Иллюстрированный самоучитель по созданию Flash-игр

Шарики-захватчики

Исходный файл: Ballooninvaders.fla.

В самой классической видеоигре, "Космические захватчики", есть очень странное, но запоминающееся поведение вражеских единиц. Они движутся группой из стороны в сторону, медленно опускаясь вниз. Если они достигнут поверхности, игрок проигрывает.

Давайте изменим первую игру данной главы так, чтобы воздушные шарики вели себя как космические захватчики.

Задачи проекта

Поведение шариков простое. Они образуют группу шириной 10 и высотой 3 шарика, как показано на рис. 10.5. Шарики движутся вправо, пока первая колонна шариков не коснется правой стороны экрана. Тогда они меняют направление и чуть-чуть опускаются.

Иллюстрированный самоучитель по созданию Flash-игр › Игры типа "Прицелься и выстрели" › Шарики-захватчики

Рис 10.5. Шарики-захватчики движутся группой

Между тем лиса внизу движется слева направо и стреляет в шарики. Она должна перестрелять их всех, прежде чем группа шариков достигнет поверхности земли.

Подход

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

Подготовка ролика

Как и в первой игре этой главы, есть кадр стоящей лисы – "stand", и анимация ходьбы. У шарика есть нормальный кадр и анимация взрыва. Все шарики сначала серого цвета и потом раскрашиваются с помощью ActionScript. Пуля – это короткий клип-линия.

Создание кода

Клип "actions" такой же, как в первой игре этой главы, за исключением того, что новые шарики не создаются в каждом кадре.

onClipEvent(load) {
    _root.initGame();
    onClipEvent(enterFrame) {
        _root.moveBalloons();
        _root.moveFox();
        _root.moveBullets();
    }
}

Функция initGame вызывает функцию createBalloons, чтобы создать группу шариков. Ей не нужно задавать такие переменные, как nextBalloon или создавать массив balloons, поскольку после начала игры новые шарики не создаются.

function initGame() {
    // Создаем шарики.
    createBalloons();
    // Параметры снарядов.
    nextBulletTime = 0;
    nextBullet = 0;
    bullets = [];
    // Переменная счета.
    score = 0;
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.