示例#1
0
        public override void Update(GameTime gameTime)
        {
            if (_enemyGroup.AllDestroyed() || _loseGame)
            {
                _backToMenuTime += gameTime.ElapsedGameTime.TotalMilliseconds;
                if (_backToMenuTime >= 3000)
                {
                    AudioManager.StopTheme();
                    AlienAttackGame.Instance.SetState(GameState.TitleScreen);
                }

                _enemyGroup.Reset();
                _playerShots.Clear();
            }
            else
            {
                MovePlayer(gameTime);
                UpdatePlayerShots(gameTime);
            }

            // as long as we're not in the lose state, update the enemies
            if (!_loseGame)
            {
                _enemyGroup.Update(gameTime);
            }

            HandleCollisions(gameTime);
        }