Поймай лису

Подход

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

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

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

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

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

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

http://samoucka.ru

Рисунок 8.5. Игрок только что поразил лису

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

http://samoucka.ru

Рисунок 8.6. Текстовая область связывается с переменной showScore в панели Properties

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

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

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