b5ab525c

Если центр яблока попадает в прямоугольную



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

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

Если яблоко поймано или упало на землю, вызывается функция removeapple. В первом случае также происходит увеличение счета.

function moveApples() {

// Проверяем все падающие в данный момент яблоки,
for (i=firstApple;i // Определяем координаты яблока.
х = _root["apple"+i]._x;
у = _root["apple"+i]._y + appleSpeed; // Проверяем, достигло ли яблоко земли,
if (у > 400) {
removeApple(i);
// Проверяем, попало ли оно в корзину.
}
else if ((Math.abs(y-fox._y) < 10) and (Math.abs(x-fox._x) < 25))
{
removeApple(i) ;
score += 1;
// В противном случае яблоко продолжает падать
} else {
_root["apple"+i]._y = у;
}
}
}



При помощи функции removedClip функция removeapple удаляет клип. Она также увеличивает значение переменной firstapple, в результате функция moveapple прекращает перемешать яблоко вниз.
Если яблоко было последним, ролик переходит к кадру "game over". При этом ролик лисы удаляется с экрана.

function removeApple(n) {
// Убираем яблоко с экрана.
_root["apple"+n].removeMovieClip();
// Увеличиваем указатель на первое яблоко на единицу.
firstApple = п+1;
// Проверяем, не последнее ли это яблоко?
if (n == totalApples) {
fox.removeMovieClip();
gotoAndPlay("game over");
}
}



Содержание раздела