public void Update() { if (Keyboard.GetState().IsKeyDown(Keys.Left) || Keyboard.GetState().IsKeyDown(Keys.A)) { Camera.GetCamera().Position += Vector3.Cross(Camera.GetCamera().Up, Camera.GetCamera().Direction) * Camera.GetCamera().Speed; } if (Keyboard.GetState().IsKeyDown(Keys.Right) || Keyboard.GetState().IsKeyDown(Keys.D)) { Camera.GetCamera().Position -= Vector3.Cross(Camera.GetCamera().Up, Camera.GetCamera().Direction) * Camera.GetCamera().Speed; } if (Keyboard.GetState().IsKeyDown(Keys.Up) || Keyboard.GetState().IsKeyDown(Keys.W)) { Camera.GetCamera().Position += Camera.GetCamera().Direction * Camera.GetCamera().Speed; } if (Keyboard.GetState().IsKeyDown(Keys.Down) || Keyboard.GetState().IsKeyDown(Keys.S)) { Camera.GetCamera().Position -= Camera.GetCamera().Direction * Camera.GetCamera().Speed; } if (Mouse.GetState() != _prevMouseState) { Camera.GetCamera().Direction = Vector3.Transform(Camera.GetCamera().Direction, Matrix.CreateFromAxisAngle(Vector3.Normalize(Camera.GetCamera().Up), (-MathHelper.PiOver4 / 150) * (Mouse.GetState().X - _prevMouseState.X) )); Camera.GetCamera().Direction = Vector3.Transform(Camera.GetCamera().Direction, Matrix.CreateFromAxisAngle(Vector3.Normalize(Vector3.Cross(Camera.GetCamera().Up, Camera.GetCamera().Direction)), (MathHelper.PiOver4 / 100) * (Mouse.GetState().Y - _prevMouseState.Y) )); // Reset PrevMouseState Mouse.SetPosition(App.GetApp().Graphics.PreferredBackBufferWidth / 2, App.GetApp().Graphics.PreferredBackBufferHeight / 2); } if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown( Keys.Escape)) { App.GetApp().Exit(); } }
public void Draw() { try { Camera.GetCamera().Draw(); foreach (var obj in _objectsToRender) { if (obj != null) { obj.Draw(); } } } catch (Exception e) { Logger.Log.Warn("Unchandled expeption in Scene.Draw:" + e); } }