Exemplo n.º 1
0
        public override void Update(GameTime gameTime)
        {
            if (IsKeyEvent(Keys.Escape))
            {
                _overlays.Add(_pauseScreen);
            }

            // Abstract in own method
            if (IsOverlayActive(_pauseScreen))
            {
                if (_pauseScreen.ExitButton.IsClicked)
                {
                    Game.Exit();
                }

                if (_pauseScreen.ResumeButton.IsClicked)
                {
                    _overlays.Remove(_pauseScreen);
                }
            }

            if (_state == State.intro)
            {
                _introSound.PlayOnce(gameTime);

                if (HasTotalSecondsPassed(_introSound.TimeFinished + 3))
                {
                    _currentMiniGame = _livingRoomGames.First();
                    _livingRoomGames.Remove(_currentMiniGame);
                    _currentMiniGame.Start();
                    _state = State.minigame;
                }
            }

            if (_state == State.minigame)
            {
                Minigame(gameTime);

                if (_house.IsDoneSliding)
                {

                    _house.SwapRoom();

                    MakeNextMinigameCurrentMinigame(); // By lack of a better name
                    _currentMiniGame.Start();
                    _dog.MoveHorizontal((int)Center.X - _dog.SpriteWidth / 2);

                }

                _currentMiniGame.Update(gameTime);
                if (_nextMinigame != null)
                    _nextMinigame.Update(gameTime);
            }

            base.Update(gameTime);
        }