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

Космический бой

В ролике на главной временной шкале расположены три кадра: "start", "play" и "game over". Все действие происходит в кадре "play".

Иллюстрированный самоучитель по созданию Flash-игр › Аркады › Космический бой
Рис. 16.2. Взрыв астероида (клип "rock")

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

Код инициализируется действием, помешенным в небольшой клип "actions", который расположен за пределами рабочего поля, и кнопкой "button", которая находится точно под клипом. Клип "actions" вызывает одну функцию в начале игры и четыре других при каждом обращении к кадру.

onClipEvent(load) {
    // Загружаем игру. 
    _root.initGame();
}
onClipEvent(enterFrame) {
    // Перемещаем перекрестие.
    _root.moveCursor();
    // Перемещаем все пули.
    _root.moveBullets();
    //С вероятностью 10% создаем новый астероид,
    if (Math.random() < 0.1)
        _root.createRock();
    // Перемещаем все астероиды.
    _root.moveRocks();
}

Кнопка "button" реагирует на нажатие клавиши Пробел и вызывает функцию основной временной шкалы.

on(keypress "space") {
    // Нажатие клавиши Пробел означает выстрел,
    fire();
}

Вы обнаружите все функции в основной временной шкале. Функция initGame создает массивы, в которых будет храниться информация об астероидах и пулях. Она помешает клипы "foreground" и "cursor" поверх остальных, таким образом оказывается, что астероиды и пули располагаются под ними. Будет казаться, что они находятся вне космического корабля.

Восстанавливаются значения переменных damage и hits. Переменная level не имеет отношения к уровню игры, а используется для определения вновь создаваемого клипа. Каждый новый клип – пуля или астероид – помешается на новый уровень.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.