Гонки
Когда объект достигает значения 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; } }