private void ResetGame() { if (_chopperGenerator != null) { _chopperGenerator.StopGenerating(); } _bulletList.DeactivateAllObjects(obj => RemoveGameObject(obj)); _missileList.DeactivateAllObjects(obj => RemoveGameObject(obj)); _enemyList.DeactivateAllObjects(obj => RemoveGameObject(obj)); _explosionList.DeactivateAllObjects(obj => RemoveGameObject(obj)); _turretBulletList.DeactivateAllObjects(obj => RemoveGameObject(obj)); _turretList.DeactivateAllObjects(obj => RemoveGameObject(obj)); _playerSprite.Activate(); AddGameObject(_playerSprite); // position the player in the middle of the screen, at the bottom, leaving a slight gap at the bottom var playerXPos = _viewportWidth / 2 - _playerSprite.Width / 2; var playerYPos = _viewportHeight - _playerSprite.Height - 30; _playerSprite.Position = new Vector2(playerXPos, playerYPos); _playerDead = false; _level.Reset(); }