public S_CameraMode(GameStateManager creator, float xPos, float yPos, S_Pause s_Pause) : base(creator, xPos, yPos) { cameraProperties = parentManager.boardGame.cameraProperties; // Pause the pause menu (lol) this.s_Pause = s_Pause; s_Pause.active = false; s_Pause.visible = false; // Hide other states so we see just the gameboard foreach (State s in parentManager.states) { if (!s.GetType().Equals(typeof(B_PirateBay)) && s != this) { s.visible = false; } } // Save where the camera was oldCameraPos = cameraProperties.getPos(); }
public override void Update(GameTime gameTime, KeyboardState ks) { base.Update(gameTime, ks); // Move Right if (parentManager.km.KeyDown(Keys.D)) { if (cameraProperties.getX() < MGP_Constants.BOARD_MAX_WIDTH) { cameraProperties.incX(speed); } } // Move Left if (parentManager.km.KeyDown(Keys.A)) { if (cameraProperties.getX() > MGP_Constants.BOARD_MIN_WIDTH) { cameraProperties.incX(-speed); } } // Move Up if (parentManager.km.KeyDown(Keys.W)) { if (cameraProperties.getY() > MGP_Constants.BOARD_MIN_HEIGHT) { cameraProperties.incY(-speed); } } // Move Down if (parentManager.km.KeyDown(Keys.S)) { if (cameraProperties.getY() < MGP_Constants.BOARD_MAX_HEIGHT) { cameraProperties.incY(speed); } } // Exit if ((parentManager.km.ActionPressed(KeyboardManager.action.select, KeyboardManager.playerIndex.all)) || (parentManager.km.ActionPressed(KeyboardManager.action.pause, KeyboardManager.playerIndex.all)) || (parentManager.km.ActionPressed(KeyboardManager.action.cancel, KeyboardManager.playerIndex.all))) { //Show all states again foreach (State s in parentManager.states) { s.visible = true; } // move camera back to where it was cameraProperties.setPos(oldCameraPos); s_Pause.active = true; s_Pause.visible = true; this.flagForDeletion = true; sendDelay = 2; } // Camera is fixated on CameraProperties object: this.parentManager.game.cameraObject.LookAt(cameraProperties.getPos()); }