public void Update() { VehicleChassis chassis = Race.Current.PlayerVehicle.Chassis; _camera.Position = Race.Current.PlayerVehicle.GetBodyBottom(); _camera.Orientation = chassis.Actor.GlobalOrientation.Forward; if (_camera.Rotation == MathHelper.Pi * 2) { _camera.ResetRotation(); _camera.RotateTo(MathHelper.Pi * 2); } //GameEngine.Camera = _camera; }
public void Update() { if (Engine.Input.IsKeyDown(Keys.PageDown)) { _chaseCameraPositionMultiplier += Engine.ElapsedSeconds; } else if (Engine.Input.IsKeyDown(Keys.PageUp)) { _chaseCameraPositionMultiplier -= Engine.ElapsedSeconds; if (_chaseCameraPositionMultiplier < 1) { _chaseCameraPositionMultiplier = 1; } } VehicleChassis chassis = _vehicle.Chassis; _camera.Position = _vehicle.GetBodyBottom(); if (!chassis.InAir) { _camera.Orientation = chassis.Actor.GlobalOrientation.Forward; if (chassis.Speed > 15) { _camera.RotateTo(chassis.Backwards ? MathHelper.Pi : 0); } if (Race.Current.RaceTime.IsStarted) { _camera.MinHeight = 0; } _camera.SetChaseDistance(DefaultChaseDistance * _chaseCameraPositionMultiplier, DefaultChaseHeight * _chaseCameraPositionMultiplier); } else { if (Race.Current.RaceTime.IsStarted) { _camera.MinHeight = 2; } _camera.SetChaseDistance(7, DefaultChaseHeight); } foreach (BaseHUDItem item in _hudItems) { item.Update(); } Engine.Camera = _camera; }
public override void Update() { VehicleChassis chassis = Race.Current.PlayerVehicle.Chassis; _camera.Position = Race.Current.PlayerVehicle.GetBodyBottom(); _camera.Orientation = chassis.Actor.GlobalOrientation.Forward; if (_camera.Rotation == MathHelper.Pi * 2) { _camera.ResetRotation(); _camera.RotateTo(MathHelper.Pi * 2); } if (Engine.Input.WasPressed(Keys.Enter) || Engine.Input.WasPressed(Keys.Escape)) { Race.Current.ExitAndReturnToMenu(); } }
public RaceCompletedMode(CompletionType type) { _camera = new FixedChaseCamera(6.3f, 2.3f); _camera.FieldOfView = MathHelper.ToRadians(55.55f); _camera.RotationSpeed = 0.8f; _camera.MinHeight = 10; switch (type) { case CompletionType.Opponents: MessageRenderer.Instance.PostHeaderMessage("Every opponent wasted!!", 10); MessageRenderer.Instance.PostMainMessage("raceover.pix", 8, 0.7f, 0.003f, 1.4f); SoundCache.Play(SoundIds.RaceCompleted, null, false); SoundCache.Play(SoundIds.Clapping, null, false); break; case CompletionType.Checkpoints: MessageRenderer.Instance.PostHeaderMessage("All checkpoints passed!!", 10); MessageRenderer.Instance.PostMainMessage("raceover.pix", 8, 0.7f, 0.003f, 1.4f); SoundCache.Play(SoundIds.RaceCompleted, null, false); SoundCache.Play(SoundIds.Clapping, null, false); break; case CompletionType.Peds: MessageRenderer.Instance.PostHeaderMessage("Every pedestrian murdered!!", 10); MessageRenderer.Instance.PostMainMessage("raceover.pix", 8, 0.7f, 0.003f, 1.4f); SoundCache.Play(SoundIds.RaceCompleted, null, false); SoundCache.Play(SoundIds.Clapping, null, false); break; case CompletionType.TimeUp: MessageRenderer.Instance.PostMainMessage("timeup.pix", 8, 0.7f, 0.003f, 1.4f); SoundCache.Play(SoundIds.OutOfTime, null, false); break; } _camera.ResetRotation(); _camera.RotateTo(MathHelper.Pi * 2); Engine.Camera = _camera; }