public MainMenu(Game1 game, Texture2D background, Texture2D buttonsTexture) : base(game.GraphicsDevice.Viewport, background) { Vector2 middlepointScreen = new Vector2(_viewport.Width / 2, _viewport.Height / 2); float x = middlepointScreen.X - 75; Vector2 startButtonPosition = new Vector2(x, middlepointScreen.Y); Vector2 quitButtonPosition = new Vector2(x, middlepointScreen.Y + 55); _buttonList.Add(new Button( onClickAction: () => game.ChangeGameState(GameState.LEVEL_SELECTOR), buttonTexture: buttonsTexture, position: startButtonPosition, buttonSpriteRectangle: new Rectangle(6, 4, 52, 16)) ); _buttonList.Add(new Button( onClickAction: () => game.ChangeGameState(GameState.QUIT), buttonTexture: buttonsTexture, position: quitButtonPosition, buttonSpriteRectangle: new Rectangle(6, 23, 52, 16)) ); }
public PausedMenu(Game1 game, Texture2D background, Texture2D buttonsTexture) : base(game.GraphicsDevice.Viewport, background) { Vector2 middlepointScreen = new Vector2(_viewport.Width / 2, _viewport.Height / 2); float x = middlepointScreen.X - 75; Vector2 resumeButtonPosition = new Vector2(x, middlepointScreen.Y); Vector2 quitButtonPosition = new Vector2(x, middlepointScreen.Y + 55); _buttonList.Add(new Button( onClickAction: () => game.ChangeGameState(GameState.PLAYING), buttonTexture: buttonsTexture, position: resumeButtonPosition, buttonSpriteRectangle: new Rectangle(6, 4, 52, 16)) ); _buttonList.Add(new Button( onClickAction: () => game.ChangeGameState(GameState.MAIN_MENU), buttonTexture: buttonsTexture, position: quitButtonPosition, buttonSpriteRectangle: new Rectangle(6, 23, 52, 16)) ); }
public virtual void Update(GameTime gameTime) { Player.Update(gameTime, this); foreach (Character character in Characters) { character.Update(gameTime, this); } foreach (Bullet bullet in _shotsFired) { bullet.Update(gameTime); } Camera.UpdatePosition(Player.GetPosition(), this); checkAndHandleCollisions(); removeItems(); if (Player.GetPosition().Y > _viewport.Height || (Player.Health <= 0 && Player.CanChangeAnimation())) { _game.ChangeGameState(GameState.GAME_OVER); } }
public void MenuTransition(string MenuName) { bool HasMenuState = false; for (int i = 0; i < Enum.GetNames(typeof(MenuState)).Length; i++) { if (MenuName.Contains(Enum.GetNames(typeof(MenuState))[i].ToString())) { MenuContainer NewMenu = ImportMenu(MenuName); if (CurrentMenuContainer != null && NewMenu != null) { CurrentMenuState = (MenuState)i; CurrentMenuContainer.DetachFromGUI(); GuiNode.DetachChildNamed("MenuContainer"); CurrentMenuContainer = ImportMenu(MenuName); CurrentMenuContainer.AttachToGUI(); HasMenuState = true; break; } //GuiNode.Attach(CurrentMenuContainer.ContainerNode); } } if (!HasMenuState) { return; } for (int i = 0; i < Enum.GetNames(typeof(Game1.GameStates)).Length; i++) { if (MenuName.Contains(Enum.GetNames(typeof(Game1.GameStates))[i].ToString())) { Game.ChangeGameState(MenuName); break; } } }
public void LoadContent() { if (_game.PrevGameState != GameState.PAUSED) { _game.CurrentPlayingState.ResetMovement(); _game.CurrentPlayingState.Characters.Clear(); } _pauseButton = new Button( onClickAction: () => { _game.CurrentPlayingState.Movement = _currentLevel.Player.GetMovement(); _game.CurrentPlayingState.Characters = _currentLevel.Characters; _game.ChangeGameState(GameState.PAUSED); }, buttonTexture: Utility.LoadTexture(_game, "SpriteSheets/Buttons/PauseButton"), position: new Vector2(_game.GraphicsDevice.Viewport.Width - PAUSE_BUTTON_OFFSET, PAUSE_BUTTON_OFFSET - PAUSE_BUTTON_HEIGHT), buttonSpriteRectangle: new Rectangle(3, 2, 10, 10), height: 20 ); _currentLevel = _levelFactory.LoadLevel(_game.CurrentPlayingState.SelectedLevel); _currentLevel.Create(); }