Update() public method

public Update ( ) : void
return void
        public override void Update(GameTime gameTime)
        {
            _playerRespawnTimer.Update(gameTime);


            if (_gameOver)
            {
                _gameOverTimer.Update(gameTime);
                if (_gameOverTimer.Completed)
                {
                    GameOverWaitFinished?.Invoke(this, null);
                    return;
                }
            }
            else if (_player.IsDestroyed && _playerRespawnTimer.Completed && _shotManager.ShotCount == 0 /* && _enemyManager.EnemyCount == 0*/)
            {
                //StartGame();
                SpawnPlayer();
            }

            _starField.Update(gameTime);
            _asteroidManager.Update(gameTime);
            _player.Update(gameTime);
            _shotManager.Update(gameTime);
            _enemyManager.Update(gameTime);
            _pieceExplosionManager.Update(gameTime);
            _pointExplosionManager.Update(gameTime);

            // needs to come after everything has updated as this is responsible for providing
            // input for next Update routine
            _collisionEngine.Update(gameTime);
        }
Ejemplo n.º 2
0
        internal State UpdatePlayerState(IRepository <IPlayer> players, IRepository <IBullet> bullets,
                                         StarField starfield, GameTime gameTime,
                                         State gameState, KeyboardState keyState)
        {
            starfield.Speed = 3;
            State state = gameState;

            //Clear dead players
            players.GetAll().RemoveAll(p => p.IsAlive == false);
            //Set gameover
            if (players.GetAll().All(p => p.IsAlive == false))
            {
                state = State.GameOver;
            }
            if (keyState.IsKeyDown(Keys.P))
            {
                state = State.Pause;
            }
            //update players
            players.GetAll().ForEach(p => p.Update(gameTime));
            players.GetAll().ForEach(p => p.InputHandler.Move(p));
            players.GetAll().ForEach(p => p.InputHandler.PlayerShoot(bullets, players, p.Id));
            starfield.Update(gameTime);

            return(state);
        }
Ejemplo n.º 3
0
        internal State UpdateSingleLoadGameMenu(ButtonFactory singleLoginButtons, StarField starfield,
                                                State gameState, GameTime gameTime)
        {
            MouseState mouseAfterLogin = Mouse.GetState();

            singleLoginButtons.CreateButton(new Vector2(500, 300), State.OnePlayer, "New Game");
            singleLoginButtons.CreateButton(new Vector2(500, 400), State.LoadGameMenu, "Load Game");
            starfield.Update(gameTime);
            return(singleLoginButtons.ReturnButtonState(mouseAfterLogin, gameState));
        }
Ejemplo n.º 4
0
        internal State UpdateRegisterState(UserDbManager userDbManager, FormFactory mainMenuForms, StarField starfield, GameTime gameTime)
        {
            MouseState mouseRegister = Mouse.GetState();

            userDbManager.RegisterUser(mainMenuForms.GetAllForms());
            Thread.Sleep(50);
            starfield.Update(gameTime);
            mainMenuForms.EraseForms();
            return(State.Menu);
        }
Ejemplo n.º 5
0
        internal State UpdateLoadGameMenu(LoadButtonFactory loadButtons, SaveAndLoadDbManager databaseManager, UsersRepository usersRepository, InputHandler inputHandler, IRepository <IPlayer> players, IRepository <IEnemy> enemies, IRepository <IAsteroid> asteroids, StarField starfield, GameTime gameTime)
        {
            int        gameId        = 0;
            MouseState mouseLoadGame = Mouse.GetState();

            loadButtons.CreateButtons(databaseManager.GetUserGamesId(usersRepository.GetAll()));
            gameId = loadButtons.ReturnGameId(mouseLoadGame);
            starfield.Update(gameTime);
            return(databaseManager.LoadGame(players, enemies, asteroids,
                                            inputHandler, usersRepository, gameId));
        }
Ejemplo n.º 6
0
        internal State UpdatePauseMenu(ButtonFactory pauseMenuButtons, State previousState, State gameState,
                                       StarField starfield, GameTime gameTime)
        {
            pauseMenuButtons.CreateButton(new Vector2(500, 300), State.SaveGame, "Save game");
            pauseMenuButtons.CreateButton(new Vector2(500, 400), previousState, "Continue");
            pauseMenuButtons.CreateButton(new Vector2(500, 500), State.Quit, "Quit");

            MouseState pauseMouse = Mouse.GetState();

            starfield.Update(gameTime);
            starfield.Speed = 1;
            return(pauseMenuButtons.ReturnButtonState(pauseMouse, gameState));
        }
Ejemplo n.º 7
0
        internal State UpdateSingleLoginMenu(FormFactory singleLoginForms, ButtonFactory singleLoginButtons,
                                             State gameState, UsersRepository usersRepository, StarField starfield, GameTime gameTime)
        {
            MouseState mouseLogin = Mouse.GetState();

            singleLoginForms.UpdateForms(mouseLogin);
            singleLoginButtons.CreateButton(new Vector2(900, 426), State.SingleLoadGameMenu, "LogIn");
            gameState = singleLoginButtons.ReturnButtonState(mouseLogin, gameState);
            if (gameState == State.SingleLoadGameMenu)
            {
                usersRepository.AddUser(singleLoginForms);
            }

            starfield.Update(gameTime);

            return(gameState);
        }
Ejemplo n.º 8
0
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
                Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            switch (gameState)
            {
            case GameStates.TitleScreen:
                titleScreenTimer += (float)gameTime.ElapsedGameTime.TotalSeconds;
                if (titleScreenTimer >= titleScreenDelayTime)
                {
                    if ((Keyboard.GetState().IsKeyDown(Keys.Space)) ||
                        (GamePad.GetState(PlayerIndex.One).Buttons.Start == ButtonState.Pressed))
                    {
                        playerManager.LivesRemaining = playerStartingLives;
                        playerManager.PlayerScore    = 0;
                        ResetGame();
                        gameState = GameStates.Playing;
                    }
                }
                break;

            case GameStates.Playing:
                starField.Update(gameTime);
                asteroidManager.Update(gameTime);
                playerManager.Update(gameTime);
                enemyManager.Update(gameTime);
                explosionManager.Update(gameTime);
                collisionManager.CheckCollisions();

                if (playerManager.Destroyed)
                {
                    playerDeathTimer    = 0f;
                    enemyManager.Active = false;
                    playerManager.LivesRemaining--;
                    if (playerManager.LivesRemaining < 0)
                    {
                        gameState = GameStates.GameOver;
                    }
                    else
                    {
                        gameState = GameStates.PlayerDead;
                    }
                }
                break;

            case GameStates.PlayerDead:
                playerDeathTimer += (float)gameTime.ElapsedGameTime.TotalSeconds;
                starField.Update(gameTime);
                asteroidManager.Update(gameTime);
                enemyManager.Update(gameTime);
                playerManager.PlayerShotManager.Update(gameTime);
                explosionManager.Update(gameTime);
                if (playerDeathTimer >= playerDeathDelayTime)
                {
                    ResetGame();
                    gameState = GameStates.Playing;
                }
                break;

            case GameStates.GameOver:
                playerDeathTimer += (float)gameTime.ElapsedGameTime.TotalSeconds;
                starField.Update(gameTime);
                asteroidManager.Update(gameTime);
                enemyManager.Update(gameTime);
                playerManager.PlayerShotManager.Update(gameTime);
                explosionManager.Update(gameTime);
                if (playerDeathTimer >= playerDeathDelayTime)
                {
                    gameState = GameStates.TitleScreen;
                }
                break;
            }

            base.Update(gameTime);
        }