Поймай хорошее яблоко
Создание кода
Код клипа "actions" аналогичен тому, что использовался в игре "Поймай яблоко". Изменятся только функции. В функцию initGame было внесено лишь одно изменение: число падающих яблок было увеличено до 50.

Рис. 9.5. Клип "bad apple" состоит из 20 кадров. Каждый кадр содержит изображение яблока и одного из согласных звуков:
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 будет отличаться, так как она должна выбирать, какое яблоко бросать, а затем отображать произвольный кадр выбранного клипа.
function dropNewApple() { // Проверяем, прошел ли заданный промежуток времени, if (timeSinceLastApple > 20) { // Бросаем яблоко, если не превышено // их предельно допустимое количество, if (lastApple if(Math.random() < .1) { // Создаем объект-яблоко. lastApple++; if (Math.random() < .5) { //В 50% случаев яблоко плохое. attachMovie("bad apple", "apple" + lastApple, lastApple); _root["apple" + lastApple].type = "bad"; } else { // В 50% случаев яблоко хорошее. attachMovie("good apple", "apple" + lastApple, lastApple); _root["apple" + lastApple].type = "good"; } f = int(Math.Random() * _root["apple" + lastApple]._totalFrames) + 1; trace(f); _root["apple" + lastApple].gotoAndStop(f); _root["apple" + lastApple]._x = Math.random() * 490 + 30; _root["apple" + lastApple]._y = 0; // Сбрасываем счетчик времени ожидания. timeSinceLastApple = 0; // Увеличиваем скорость падения яблока if (appleSpeed < 10) appleSpeed += .5; } } // Если не бросили яблоко, приближаем это событие. timeSinceLastApple++; }