public void Update() { VehicleChassis chassis = Vehicle.Chassis; if (PlayerVehicleController.Brake != 0) { chassis.Brake(PlayerVehicleController.Brake); } else { chassis.Accelerate(PlayerVehicleController.Acceleration); } chassis.Steer(-PlayerVehicleController.Turn); if (PlayerVehicleController.Handbrake) { chassis.PullHandbrake(); } else { chassis.ReleaseHandbrake(); } if (GameEngine.Input.WasPressed(Keys.R) || GameEngine.Input.WasPressed(Buttons.B)) { if (_recoverPositions.Count > 0) { Vehicle.Recover(_recoverPositions[_recoverPositions.Count - 1]); _recoverPositions.RemoveAt(_recoverPositions.Count - 1); } else { Vehicle.Chassis.Reset(); } } if (GameEngine.Input.WasPressed(Keys.Back) || GameEngine.Input.WasPressed(Buttons.Back)) { Vehicle.Repair(); } _audioListener.BeginUpdate(); _audioListener.Position = Vehicle.Chassis.Actor.GlobalPosition; _audioListener.Orientation = Vehicle.Chassis.Actor.GlobalOrientation; _audioListener.Velocity = Vector3.Zero; _audioListener.CommitChanges(); if (GameEngine.TotalSeconds > _lastRecoverTime + 5) { _recoverPositions.Add(Vehicle.Chassis.Actor.GlobalPose); if (_recoverPositions.Count > 10) { _recoverPositions.RemoveAt(0); } _lastRecoverTime = GameEngine.TotalSeconds; } }
public void Update() { _audioListener.BeginUpdate(); _audioListener.Position = Position; _audioListener.Orientation = Orientation; _audioListener.Velocity = Velocity; _audioListener.CommitChanges(); }