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


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


function checkFall() {

// Учитываем силу тяжести.

fallSpeed -= 10;

// Проверяем, есть ли место для падения,
if (fallSpeed > -foxBounds.bottom) {

foxPos.y += fallSpeed;

// Прекращаем падение и устанавливаем лису на уровень земли.

} else {

foxPos.y -= foxBounds.bottom;

fallSpeed = 0;

falling = false;

fox.gotoAndStop(1);

}

// Смотрим, не упирается ли лиса в верхний блок.

if (foxPos.y > foxBounds.top) {

foxPos.y = foxBounds.top;

fallSpeed = 0;

}}

Функция drawobjects создает эффект движения лисы. Она перерисовывает все объекты в соответствии с положением лисы.

function drawObjects() {

// Цикл по всем объектам.

for(var i=0;i

// Устанавливаем горизонтальную позицию в соответствие

// с положением лисы.

_root["object "+i]._x = х = 275 + objects[i].x -foxPos. х;

// Устанавливаем горизонтальную позицию в соответствие

//со значением floor.

_root["object "+i]._y = floor - objects[i].у;
}}

Функция getAcorns просматривает объекты в поисках орехов. Каждый орех проверяется, достаточно ли близко он находится к лисе, чтобы она могла его взять.
Если орех съеден, его свойство type устанавливается в значении used. Этот орех теперь игнорируется всеми функциями, так как они не проверяют объекты типа used.

function getAcorns() {

// Просматриваем все объекты,

for(var i=objects.length-1;i>=0;i--) {

if (objects[i].type == "acorn") {

// Если ближе 30 пикселов - хватаем орех,

if (distance(_root["object "+i],fox) < 30) {

_root["object "+i].play();

objects[i].type = "used";

score += 100;

}}}}

Функция getAcorns вызывает функцию distanse для определения расстояния между лисой и орехом. Эта же функция будет в дальнейшем использоваться функцией moveBunnies.

// Функция для определения расстояния между клипами,

function distance(mc1,mc2) {

d = Math.sqrt(Math.powfmcl._x-mc2._x,2)+ Math.powfmcl._y-mc2._y,2));

return d;

}

Все кролики контролируются функцией moveBunnies. Нет смысла следить за кроликами вне экрана, поэтому перемешаются только кролики, находящиеся не далее чем 275 пикселов от лисы.
Перед перемещением кролика вызывается функция determineBounds для определения границ его возможного перемещения. Если границы позволяют, кролик начинает передвигаться в сторону позиции игрока. Если лиса оказывается достаточно бестолковой, чтобы подобраться близко к кролику, игра заканчивается.




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