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

Поймай лису

Подход

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

Другой клип под названием "actions" управляет очередностью и периодичностью воспроизведения клипов. В начале игры лисы будут выглядывать через каждые две секунды. С каждым разом интервал между появлениями лис немного сокращается.

Когда игрок щелкает по экрану, клип "actions" определяет, какая лиса была выбрана. После этого клип воспроизводит другую анимацию, изображающую лису в состоянии легкого шока.

Каждый раз при появлении лисы значение счетчика увеличивается на один пункт. Когда игрок попадает в лису, значение другого счетчика Taк же увеличивается на единицу. Счет отображается следующим образом: количество попаданий в лису, потом знак /, затем количество появлений лисы. Другими словами, значение "5/12" будет обозначать, что игрок поразил 5 лис из 12.

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

Имеющиеся 18 отверстий в бревне – это 18 копий одного клипа. Первый кадр данного клипа изображает обычное отверстие. Следующим элементом временной шкалы клипа является анимация лисы, ненадолго выглядывающей из отверстия и затем вновь исчезающей. Другая анимационная последовательность изображает попадание в лису и ее исчезновение. Она запускается, если пользователь успел щелкнуть по лисе (рис. 8.5)

Иллюстрированный самоучитель по созданию Flash-игр › Игры типа "Найди и нажми" › Поймай лису
Рис. 8.5. Игрок только что поразил лису

Для того чтобы код мог управлять 18 клипами, им были присвоены имена от "fox0" до "fox17". Необходимо также создать динамическую текстовую область с именем showScore. На рис. 8.6 изображена панель Properties данной текстовой области.

Иллюстрированный самоучитель по созданию Flash-игр › Игры типа "Найди и нажми" › Поймай лису
Рис. 8.6. Текстовая область связывается с переменной showScore в панели Properties

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

Весь код данной игры назначен клипу "actions", расположенному за пределами рабочего поля. Он начинается с инициализации всех глобальных переменных. В начале ролика интервал появления лис равен 2 секундам (2000 миллисекундам).

onClipEvent(load) {
    // Указываем промежуток времени между появлениями лис.
    timeBetweenFoxes = 2000;
    // Определяем время до появления следующей лисы.
    nextFox = getTimer() + timeBetweenFoxes;
    // Инициализируем переменные пораженных и показанных лис.
    score = 0;
    numFoxes = 0;
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.