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

Гонки

Когда объект достигает значения 600 по вертикали, что на 200 пикселов ниже границы экрана, он возвращается назад к значению 200, то есть вновь появляется на горизонте. С вероятностью 50/50 он помещается слева или справа от дороги. Именно в этот момент определяется значение переменной dx.

И наконец, масштаб объекта определяется в соответствии со значением _у. Это означает, что объект становится больше по мере приближения.

onClipEvent(enterFrame) {
    // Движемся вниз.
    this._y += _root.speed;
    // Движемся в стороны.
    this._x += dx * _root.speed;
    // Возвращаем объект на исходную озицию, если он проехал за
    // нижнюю границу экрана.
    if (this._y > 600) {
        this._y = 200;
        if (Math.random() < .5) {
            // Объект слева.
            this._x = Math.random() * 170;
            dx =1;
        }
        else {
            // Объект справа.
            this._x = 550 - Math.random() * 170;
            dx = 1;
            // Задаем масштаб в соответствие со значением
            _y.this._xscale = this._y / 4;
            this._yscale = this._y / 4;
        }
    }
}

Обратите внимание, что клип "sideObject" не взаимодействует с машиной. Это делает только клип "bonus". Но объекты по сторонам дороги направляют взгляд игрока так, что создается ощущение глубины.

Центральная линия движется, как и камни, но, поскольку она находится в центре экрана, она не передвигается ни вправо, ни влево. Она просто движется вниз и изменяет масштаб.

onClipEvent(enterFrame) {
    // Движемся вниз.
    this._y += _root.speed;
    // Возвращаемся к горизонту.
    if (this._y > 400) {
        this._y = 200;
        // Устанавливаем масштаб.
        this._xscale = this._y / 4;
        this._yscale = this._y / 4;
    }
}

Бонусные звезды ведут себя более похоже на объекты по сторонам. Однако они не появляются где попало. Они появляются с равной вероятностью в одном из двух мест на дороге.

Таким образом, двигаясь вниз по экрану, бонусная звезда движется в сторону со скоростью вполовину меньшей, чем вниз. Это позволяет создавать более точную перспективу, поскольку звезды находятся ближе к центру дороги.

onClipEvent(enterFrame) {
    // Движемся вниз.
    this._y += _root.speed;
    this._x += dx * _root.speed;
    // Возвращаемся к горизонту,
    if (this._y > 600) {
        this._y = 200;
        if (Math.random() < .5) {
            // Переходим на левую сторону дороги.
            this._x = 250;
            dx = -0.5;
        }
        else {
            // Переходим на правую сторону дороги.
            this._x = 300;
            dx = 0.5;
        }
        // Устанавливаем масштаб в соответствии с вертикальным
        // положением.
        this._xscale = this._y / 4;
        this._yscale = this._y / 4;
    }
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.