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


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


// Нельзя сделать следующий шаг в течение 50 миллисекунд,

fox.nextmove = getTimer() + 50;

// Перемещаем лису.

fox._x += fox.move.x*5;

fox._y += fox.move.y*5;

// Определяем, прошла ли лиса сквозь тоннель,

if (fox._x > 550) fox._x = 0;

if (fox._x < 0) fox._x = 550;

// Проверяем, достигла ли лиса положения своей цели,

if ((fox._x == fox.dest.x) and (fox.__y == fox.dest.у)) {

eatBerry();

nextMove();

}}}

Для того чтобы лиса съела ягоду, нужно просмотреть массив berries и определить, совпадает ли положение какой-либо ягоды с положением лисы. Если да, то клип этой ягоды переходит ко второму кадру, ягода исчезает, а количество очков увеличивается.
Так как в поисках нужной ягоды вы просматриваете массив berries, можете посчитать, сколько ягод не было съедено. Если была найдена не съеденная ягода, то уровень не заканчивается.

function eatBerry() {

// Предположим, что все ягоды были съедены.

allGone = true;

// Просматриваем массив berries,

for (i=0; i<berries.length; i++) {

// Выясняем, находится ли ягода там же, где и лиса.

if ((berries[i]._currentFrame == 1) and (berries[i]._x == fox._x) and (berries[i]._y == fox._y)) {

// Удаляем ягоду.

berries[i].gotoAndStop("nothing");

// Лиса открывает рот.

fox.gotoAndPlay("eat");

// Увеличиваем число очков.

score++;

// Если какая-то ягода еще не съедена,

// то уровень не закончен.

} else if (berries[i]._currentFrame== 1){

allGone = false;

}} // ЕСЛИ все ягоды были съедены, уровень завершен.

if (allGone) {

gotoAndPlay("level over");

gameLevel++;

}}

Когда лиса доходит до ягоды, необходимо определить следующее положение цели. С помощью объекта Key можно проверить все четыре клавиши со стрелками, если нажата одна из них, для лисы определяется
объект move. Однако это не значит, что лиса будет двигаться в указанном направлении.
Для того чтобы лиса могла сделать шаг, необходимо, чтобы в том направлении на расстоянии ровно в 25 пикселов находился клип ягоды.
Если же его там нет, то свойство move объекта обнуляется.




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