Example #1
0
        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))
                            );
        }
Example #2
0
        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))
                            );
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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;
                }
            }
        }
Example #5
0
        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();
        }