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


Создание кода - часть 3


function dropNewApple() {

// Бросаем яблоко, если прошло достаточно времени,

if (timeSinceLastApple > 20) {

// Бросаем, если не превышено

// предельное количество яблок, которые можно бросить
. if (lastApple < totalApples) {

// Устанавливаем вероятность падения яблока в 10%.

if (Math.random!) < .1) {

// Создаем объект-яблоко.

lastApple++;

attachMovief"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 показан прямоугольник, который представляет область попадания.

Рисунок 9.3 Если центр яблока попадает в прямоугольную область размером 50x20 пикселов, расположенную вокруг центра корзины, оно считается пойманным

функция Math. abs () (модуль числа) используется, чтобы определить, столкнулись ли объекты. Если из координат одного объекта вычесть координаты другого, получается положительное или отрицательное значение. Например, если первый объект находится на расстоянии 7 пикселов вправо от второго, вы получаете значение 7, если слева -значение -7. Функция Math. abs () убирает знак, благодаря чему в обоих случаях вы получаете значение 7. Аналогичным образом вы можете проверить, находится ли объект на определенном расстоянии слева или справа от другого.




Начало  Назад  Вперед