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


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


if (fox._x < 150) fox._x = 150;

if (fox._x > 400) fox._x = 400;

// Увеличиваем скорость движения байдарки

if (riverSpeed < 20) riverSpeed += .5;

}

Скорость игры увеличивается с помощью функции moveFox, в результате байдарка постепенно набирает скорость.
Функция newRock аналогична функции dropNewApplet предыдущей игры и даже немного проще, поскольку при появлении камня выбор ограничен только одним клипом.

function newRock() {

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

if (timeSinceLastRock > 5) {

// Проверяем, превышено ли максимальное число камней

if (lastRock < totalRocks) {

// Новая скала появляется с вероятностью 10%

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

// Создаем новую скалу

lastRock++;

attachMovie( "rocks", "rock"+lastRock, lastRock );
_root["rock"+lastRock]._x = Math.random()*250+150;

_root["rock"+lastRock]._y = 450;

// Решаем, какой кадр показать.

f = int(Math.Random()*_root["rock"+lastRock]._totalFrames) + 1;

_root["rock"+lastRock].gotoAndStop(f);

// Сбрасываем счетчик времени

//до появления следующего камня.

timeSinceLastRock = 0;

// Запоминаем, что с новым камнем

// столкновений не было.

_root["rock"+i].hit = false;

}

} }

// Уменьшаем время до появления следующего камня

timeSinceLastRock++;

}

Обратите внимание, что для каждого нового камня переменная hit принимает значение false. Это обозначает, что байдарка ни разу не столкнулась с данным камнем. Это условие проверяется функцией moveRock перед тем, как разрешить столкновение. В случае столкновения переменная hit соответствующего клипа принимает значение true и второй раз удариться об этот камень байдарка уже не может.
Обратите внимание, что по сравнению с игрой "Поймай яблоко" меняются и координаты области попадания (столкновения). Столкновение может произойти в области с размерами 60 пикселов по горизонтали и 25 пикселов по вертикали в обе стороны от центра. Эта область примерно соответствует форме байдарки (рис. 9.8).




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