public override StateChangeInformation OnUpdate(float elapsedTime)
        {
            _globalTime += elapsedTime;

            _explosionManager.Update(elapsedTime);
            _gameBackground.Update(elapsedTime);
            _carManager.Update(elapsedTime);
            _player.Update(elapsedTime);
            _weather.Update(elapsedTime);

            if (_playerIsDead)
            {
                _waitTimer += elapsedTime;
                if (_waitTimer >= 3.0f)
                {
                    return(StateChangeInformation.StateChange(typeof(GameOverState), typeof(FlipTransition),
                                                              _player.Points));
                }
            }
            else if (!_playerIsDead && _player.PlayerState == PlayerState.Dead)
            {
                SoundService.StopCurrentSong();
                _playerIsDead = true;
                _waitTimer    = 0;
            }

            _carManager.spawnTime = (100 - _player.Points / 50);
            if (_carManager.spawnTime <= 10)
            {
                _carManager.spawnTime = 10;
            }
            _carManager.points = _player.Points + 150;

            return(StateChangeInformation.Empty);
        }