protected override void LoadContent() { _geometryAndSettings.device = GraphicsDevice; _geometryAndSettings.effect = Content.Load <Effect>("shaders/Series4Effects"); _cameraManager.UpdateViewMatrix(); _geometryAndSettings.viewMatrix = Matrix.CreateLookAt(new Vector3(130, 30, -50), new Vector3(0, 0, -40), new Vector3(0, 1, 0)); _geometryAndSettings.projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, _geometryAndSettings.device.Viewport.AspectRatio, 0.3f, 1000.0f); _geometryAndSettings.skyDome = Content.Load <Model>("geometry/dome"); _geometryAndSettings.skyDome.Meshes[0].MeshParts[0].Effect = _geometryAndSettings.effect.Clone(); PresentationParameters pp = _geometryAndSettings.device.PresentationParameters; _geometryAndSettings.refractionRenderTarget = new RenderTarget2D(_geometryAndSettings.device, pp.BackBufferWidth, pp.BackBufferHeight, false, pp.BackBufferFormat, pp.DepthStencilFormat); _geometryAndSettings.reflectionRenderTarget = new RenderTarget2D(_geometryAndSettings.device, pp.BackBufferWidth, pp.BackBufferHeight, false, pp.BackBufferFormat, pp.DepthStencilFormat); Mouse.SetPosition(_geometryAndSettings.device.Viewport.Width / 2, _geometryAndSettings.device.Viewport.Height / 2); _geometryAndSettings.originalMouseState = Mouse.GetState(); _geometryAndSettings.bbEffect = Content.Load <Effect>(@"shaders\bbEffect"); LoadVertices(); LoadTextures(); CursorLocate.Initialize(_geometryAndSettings.terrainWidth, _geometryAndSettings.terrainLength); }
public void ProcessInput(float timeDelta) { // rotate camera MouseState currentMouseState = Mouse.GetState(); if (currentMouseState != _geometryAndSettings.originalMouseState) { float xDifference = currentMouseState.X - _geometryAndSettings.originalMouseState.X; float yDifference = currentMouseState.Y - _geometryAndSettings.originalMouseState.Y; _geometryAndSettings.leftrightRot -= GeometryAndSettings.rotationSpeed * xDifference * timeDelta; _geometryAndSettings.updownRot -= GeometryAndSettings.rotationSpeed * yDifference * timeDelta; Mouse.SetPosition(_geometryAndSettings.device.Viewport.Width / 2, _geometryAndSettings.device.Viewport.Height / 2); UpdateViewMatrix(); } // move camera Vector3 moveVector = new Vector3(0, 0, 0); KeyboardState keyState = Keyboard.GetState(); if (keyState.IsKeyDown(Keys.W)) { moveVector += new Vector3(0, 0, -1); } if (keyState.IsKeyDown(Keys.S)) { moveVector += new Vector3(0, 0, 1); } if (keyState.IsKeyDown(Keys.D)) { moveVector += new Vector3(1, 0, 0); } if (keyState.IsKeyDown(Keys.A)) { moveVector += new Vector3(-1, 0, 0); } if (keyState.IsKeyDown(Keys.Q)) { moveVector += new Vector3(0, 1, 0); } if (keyState.IsKeyDown(Keys.Z)) { moveVector += new Vector3(0, -1, 0); } AddToCameraPosition(moveVector * timeDelta); // emitter cursor location if (keyState.IsKeyDown(Keys.Up)) { CursorLocate.AlterZ(1); } if (keyState.IsKeyDown(Keys.Down)) { CursorLocate.AlterZ(-1); } if (keyState.IsKeyDown(Keys.Right)) { CursorLocate.AlterZ(1); } if (keyState.IsKeyDown(Keys.Left)) { CursorLocate.AlterX(-1); } if (keyState.IsKeyDown(Keys.End)) { CursorLocate.ResetToCenter(); } }