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

Сплав на байдарке

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

Вместо клипа "apples" мы будем использовать клип "rocks". В ролике Riverkayak.fla клип "rocks" состоит из трех кадров. Каждый кадр содержит анимированное изображение, состоящее из другого элемента библиотеки. Хотя каждый камень находится в одном кадре клипа, анимация воспроизводится в графическом элементе. Запустив ролик, вы увидите, что в каждом кадре вокруг камня течет вода.

Клип лисы, ловящей яблоки, будет заменен на клип лисы в байдарке Первый кадр изображает лису в байдарке, повернутой вниз по течению и с веслами над водой. Затем следуют кадры "left" и "right", содержащие изображение повернутой байдарки и одного весла, опущенного в воду. На рис.9.7 изображена лиса, поворачивающая вправо. После этого в кадре 4 запускается анимация "spill", представляющая удар байдарки о камень.

Иллюстрированный самоучитель по созданию Flash-игр › Игры типа "Поймай или пропусти" › Сплав на байдарке
Рис. 9.7. Второй кадр ролика лисы содержит изображение лисы, поворачивающей вправо

Для того чтобы клипы "rocks" и "fox" были включены в ролик, им аналогично клипам "apples" и "fox" предыдущих игр необходимо присвоить имена в панели Linkage Properties.

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

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

onClipEvent(load) {
    _root.initGame();
}
onClipEvent(enterFrame) {
    _root.moveFox();
    _root.newRock();
    _root.moveRocks();
}

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

Функция initGame запускает игру со скоростью течения реки 0. Изображение лисы расположено не в нижней части экрана, а в центре.

function initGame() {
    // Номера первого и последнего камня.
    firstRock = 1;
    lastRock = 0;
    // Задаем переменную, содержащую количество столкновений.
    spills = 0;
    // Количество камней.
    totalRocks = 50;
    // Время, прошедшее со времени появления последнего камня.
    timeSinceLastRock = 0;
    riverSpeed = 0;
    /// Помещаем на рабочее поле клип лисы.
    attachMovie("kayaking fox", "fox", 999999);
    fox._x = 275;
    fox._y = 200;
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.