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


Создание кода


Основная часть кода - это сценарий клипа машины. Он начинается с задания переменной speed значения 0. Эта переменная должна быть на уровне _root, поскольку остальные клипы будут к ней обращаться.

onClipEvent(load) {

// Инициализируем переменную скорости.

_root.speed = 0;

}

Обработчик onClipEvent (enterFrame) сначала проверяет все четыре клавиши с изображением стрелок. Левая и правая клавиши со стрелкой перемешают машину влево или вправо и также заставляют клип с машиной показывать соответствующий кадр поворота.
Клавиши со стрелками вверх и вниз изменяют скорость машины на 0,1. Постоянно осуществляется проверка, не упала ли скорость ниже 0.
Если ни одна из клавиш со стрелками не нажата, клип с машиной возвращается к первому кадру. Обработчик осуществляет еще две проверки. Первая нужна, чтобы узнать, не находится ли под машиной клип "bonus". Если да, игрок получает очки, и бонус очень быстро проезжает далее, чтобы игрок не получил за него очки еще раз.
Вторая проверка выясняет, не коснулась ли машина обочины. Если да, движение машины в сторону ограничивается и замедляется.

onClipEvent(enterFrame) {

if (Key.isDownfKey.LEFT)) {

// Поворачиваем влево.

this._x -= 10;

this.gotoAndStop("left");

} else if (Key.isDown(Key.RIGHT)) {

// Поворачиваем вправо.

this._x += 15;

this.gotoAndStopC'right") ;

} else if (Key.isDown(Key.UP)) {

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

_root.speed += .1;

} else if (Key.isDown(Key.DOWN)) {

// Тормозим.

_root.speed -= . 1;

// Проверяем, что скорость не меньше 0.

if (_root.speed < 0) _root.speed = 0;

} else {

_root.car.gotoAndStop("straight");

// Проверяем бонус.

if (this.hitTest(_root.bonus._x,_root.bonus._y)) {

_root.score++;

_root.bonus._y +=100;

// Замедляем движение, если коснулись обочины,

if (this._x < 80) {

this._x = 80;

_root.speed /= 2;

} else if (this._x > 470) {

this._x = 470;

_root.speed /= 2;
}}

Клип "sideObject" содержит сценарий, двигающий объект вниз и в сторону от центра. Для каждого следующего кадра значение _у увеличивается, а _х - изменяется. Оба параметра используют переменную speed для характеристики этого изменения, но _х использует коэффициент dx который может быть равен 1 или -1. Объект перемешается соответственно вправо или влево.
Когда объект достигает значения 600 по вертикали, что на 200 пикселов ниже границы экрана, он возвращается назад к значению 200, то есть вновь появляется на горизонте. С вероятностью 50/50 он помещается слева или справа от дороги. Именно в этот момент определяется значение переменной dx.
И наконец, масштаб объекта определяется в соответствии со значением _у. Это означает, что объект становится больше по мере приближения




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



Книжный магазин