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); }