Задача проекта – так изменить игру «Поймай яблоко», чтобы учитывалось различие букв (гласные/согласные). Поймав любое яблоко с нарисованной гласной буквой, игрок получит очко, поймав яблоко с согласной, он потеряет очки. При этом счет не может быть меньше 0.
Подход
В игре «Поймай яблоко» единственный клип яблока в библиотеке содержал статическое изображение, состоящее из одного кадра. Для показа различных типов яблок нам понадобится два разных клипа, один для хороших яблок, другой для плохих. Кроме этого, каждый клип будет состоять из множества кадров с изображениями различных яблок. Клип хорошего яблока будет состоять из 5 кадров, соответствующих гласным. Клип плохого яблока будет состоять из 20 кадров, представляющих согласные звуки. Буква "Y" использоваться не будет.
Когда наступает время бросать яблоко, оно может с равной степенью вероятности оказаться как хорошим, так и плохим. Код отобразит произвольный кадр из соответствующего клипа.
После того как игрок поймает яблоко, код определит его тип и соответственно изменит счет.
Подготовка ролика
В библиотеке ролика на Web-сайте вы увидите два клипа яблока. Первый, «bad apple», содержит 20 кадров. Каждый кадр включает изображение яблока и согласной. Другой клип, «good apple», содержит 5 кадров для 5 гласных. На рис. 9.5 изображено основное окно Flash, открытое на клипе «bad apple».
Рисунок 9.5.
В диалоговом окне Symbol Linkage Properties обоим клипам будет назначено свойство Export for ActionScript и присвоен идентификатор «good apple» или «bad apple».
Создание кода
Код клипа «actions» аналогичен тому, что использовался в игре «Поймай яблоко». Изменятся только функции.
В функцию initGame было внесено лишь одно изменение: число падающих яблок было увеличено до 50.function initGame {
// Инициализация переменных, хранящих
// номера первого и последнего яблока.
firstApple = 1;
lastApple = 0;
// Инициализация переменной, хранящей число пойманных яблок.
score = 0;
// Задаем общее количество яблок.
totalApples = 50;
// Скорость падения и счетчик времени между появлениями яблок.
timeSinceLastApple = 0;
appleSpeed = 5;
// Создаем экземпляр клипа, содержащий лису.
attachMovie("running fox","fox",999999);
fox._x = 275;
fox._y = 300;
}Функция moveFox полностью совпадает с аналогичной функцией игры «Поймай яблоко», поэтому нет смысла повторять ее здесь. Функция dropNewApple будет отличаться, так как она должна выбирать, какое яблоко бросать, а затем отображать произвольный кадр выбранного клипа.