function step(who) { //check to see if the car in question is controlled by the player or by the computer if (_root["car" who].code == "player") { //we will constantly decrease speed by multiplying it with a number below 1 if (this["speed" who]>0.3) { this["speed" who] *= _root.speedDecay; } else { this["speed" who] = 0; } //the car will react to certain keys //accelerate if (Key.isDown(Key.UP)&& this["speed" who]<_root.maxSpeed) { this["speed" who] = _root.acceleration; } //brake (reverse) if (Key.isDown(Key.DOWN)) { this["speed" who] -= _root.backSpeed; } //steer left if (Key.isDown(Key.LEFT)&& this["speed" who]>0.3) { _root["car" who]._rotation -= _root.rotationStep*(this["speed" who]/_root.maxSpeed); } //steer right if (Key.isDown(Key.RIGHT)&& this["speed" who]>0.3) { _root["car" who]._rotation = _root.rotationStep*(this["speed" who]/_root.maxSpeed); } this["rotation" who] = _root["car" who]._rotation; //we calculate the two components of speed (X axis and Y axis) this["speedx" who] = Math.sin(this["rotation" who]*(Math.PI/180))*this["speed" who]; this["speedy" who] = Math.cos(this["rotation" who]*(Math.PI/180))*this["speed" who]*-1; //apply the components on the actual position of the car _root["car" who]._x = this["speedx" who]; _root["car" who]._y = this["speedy" who]; //position the shadow of the car _root["shadow" who]._x = _root["car" who]._x-4; _root["shadow" who]._y = _root["car" who]._y 2; _root["shadow" who]._rotation = _root["car" who]._rotation; } if (_root["car" who].code == "computer") { } }