public override void Update(GameTime gameTime) { KeyboardInputManager.Begin(); // Move camera if (KeyboardInputManager.IsKeyDown(Keys.Left)) { _cameraPosition.X += 12f * DeltaTime; } if (KeyboardInputManager.IsKeyDown(Keys.Right)) { _cameraPosition.X -= 12f * DeltaTime; } if (KeyboardInputManager.IsKeyDown(Keys.Up)) { _cameraPosition.Y -= 12f * DeltaTime; } if (KeyboardInputManager.IsKeyDown(Keys.Down)) { _cameraPosition.Y += 12f * DeltaTime; } // We make it possible to rotate the player body if (KeyboardInputManager.IsKeyDown(Keys.A)) { _playerBodyComponent.ApplyTorque(10); } if (KeyboardInputManager.IsKeyDown(Keys.D)) { _playerBodyComponent.ApplyTorque(-10); } if (KeyboardInputManager.IsKeyPressed(Keys.Space)) { _playerBodyComponent.ApplyLinearImpulse(new Vector2(0f, 10f)); } Camera2D.Position = _cameraPosition; KeyboardInputManager.End(); base.Update(gameTime); }
public void Update() { var cameraPosition = Vector2.Lerp(_characterEntity.Position, Scene.Camera2D.Position, 0.125f); if (_impulse == 0f) { _impulse = _characterBodyComponent.Mass * 10 / Scene.DeltaTime; } // Moving updates if (Scene.KeyboardInputManager.IsKeyDown(Keys.Right)) { _characterBodyComponent.ApplyTorque(-_impulse * 5); if (Scene.Camera2D.Position.X < _characterEntity.Position.X) { Scene.Camera2D.Position = new Vector2(cameraPosition.X, Scene.Camera2D.Position.Y); } } if (Scene.KeyboardInputManager.IsKeyDown(Keys.Left)) { _characterBodyComponent.ApplyTorque(_impulse * 5); if (Scene.Camera2D.Position.X > Scene.ScreenCenter.X) { Scene.Camera2D.Position = new Vector2(cameraPosition.X, Scene.Camera2D.Position.Y); } } // Jumping updates if (Scene.KeyboardInputManager.IsKeyPressed(Keys.Up) || Scene.KeyboardInputManager.IsKeyPressed(Keys.Space)) { _characterBodyComponent.ApplyLinearImpulseY(_impulse); } if (_characterEntity.Position.Y < Scene.ScreenCenter.Y) { Scene.Camera2D.Position = new Vector2(cameraPosition.X, cameraPosition.Y + Scene.ScreenCenter.Y * 0.45f); } }