/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { if (controlMapper.Select()) { Exit(); } if (controlMapper.Start()) { mapCamera.SetTargetCameraPosition(new Vector2(0)); } if (controlMapper.Down()) { gameMap.GetMapCursor().MoveCursorInDirection((MapCursor.CursorDirection.Down)); } if (controlMapper.Left()) { gameMap.GetMapCursor().MoveCursorInDirection((MapCursor.CursorDirection.Left)); } if (controlMapper.Right()) { gameMap.GetMapCursor().MoveCursorInDirection((MapCursor.CursorDirection.Right)); } if (controlMapper.Up()) { gameMap.GetMapCursor().MoveCursorInDirection((MapCursor.CursorDirection.Up)); } if (Keyboard.GetState().IsKeyDown(Keys.Down)) { mapCamera.MoveCameraInDirection(CameraDirection.Down); } if (Keyboard.GetState().IsKeyDown(Keys.Left)) { mapCamera.MoveCameraInDirection(CameraDirection.Left); } if (Keyboard.GetState().IsKeyDown(Keys.Right)) { mapCamera.MoveCameraInDirection(CameraDirection.Right); } if (Keyboard.GetState().IsKeyDown(Keys.Up)) { mapCamera.MoveCameraInDirection(CameraDirection.Up); } Vector2 screenSize = new Vector2(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight); Vector2 mapSize = gameMap.MapSize(); mapCamera.CorrectCameraToCursor(gameMap.GetMapCursor(), screenSize, mapSize); mapCamera.PanCameraToTarget(); base.Update(gameTime); }