Один раз в каждом кадре вызывается функция dropNewApple. Необходимость создания нового яблока определяется тремя вложенными условными выражениями.
Прежде всего проверяется переменная timeSinceLastApple. Условие выполняется только в случае, если ее значение больше 20. Переменная увеличивается на 1 в конце функции.
В следующей проверке определяется, соответствует ли количество упавших яблок общему количеству яблок, которое должно быть сброшено.
Наконец, функция Math.random задает 10-процентную вероятность того, что яблоко упадет. В результате интервал между падениями двух яблок будет всегда разным.
Для создания нового клипа яблока используется функция attachMovie. Горизонтальное положение ролика выбирается в диапазоне между 30 и 520. Каждый раз при создании нового яблока значение переменной appleSpeed увеличивается.function dropNewApple {
// Бросаем яблоко, если прошло достаточно времени.
if (timeSinceLastApple > 20) {
// Бросаем, если не превышено
// предельное количество яблок, которые можно бросить.
if (lastApple < totalApples) {
// Устанавливаем вероятность падения яблока в 10 %.
if (Math.random < .1) {
// Создаем объект-яблоко.
lastApple++;
attachMovie("apple", "apple"+lastApple, lastApple);
_root["apple"+lastApple]._x = Math.random*490+30;
_root["apple"+lastApple]._y = 0;
// Сбрасываем счетчик времени ожидания.
timeSinceLastApple = 0;
// Увеличиваем скорость падения яблока.
if (appleSpeed < 10) appleSpeed += .5;
}
}
}
// Если не бросили яблоко, сокращаем время ожидания.
timeSinceLastApple++;
}Функция, выполняющая перемещение яблок, должна не только изменять их вертикальное положение, но и проверять, упало ли яблоко на землю или в корзину.
Чтобы определить, упало ли яблоко на землю, функция должна проверить, находится ли яблоко ниже нижней границы экрана. Определить попадание в корзину немного сложнее: необходимо установить, соответствует ли расстояние между яблоком и лисой заданному диапазону. Если яблоко находится от лисы на расстоянии в 10 пикселов по вертикали и 25 пикселов по горизонтали, считается, что оно попало в корзину. Имейте в виду, что центр клипа с лисой находится в центре изображения корзины, поэтому положение корзины фактически определяется положением всего клипа с лисой. На рис. 9.3 показан прямоугольник, который представляет область попадания.