public PlayScreen(LevelTransitionScreen i_LevelTransitionScreen, Game i_Game)
     : base(i_Game)
 {
     r_LevelTransition = i_LevelTransitionScreen;
     r_PauseScreen     = new PauseScreen(this.Game);
     r_Background      = new Background(this);
     r_ScoreManager    = this.Game.Services.GetService(typeof(IScoreManager)) as IScoreManager;
     r_SoundManager    = this.Game.Services.GetService(typeof(SoundManager)) as ISoundManager;
     r_GameSettings    = this.Game.Services.GetService(typeof(IGameSettings)) as IGameSettings;
     r_ScoreManager.AddScreen(this);
     r_GameSettings.GraphicsDeviceManager.PreferredBackBufferWidth  = (int)r_Background.Width;
     r_GameSettings.GraphicsDeviceManager.PreferredBackBufferHeight = (int)r_Background.Height;
     r_GameSettings.GraphicsDeviceManager.ApplyChanges();
 }
        public GameOverScreen(PlayScreen i_PlayScreen, Game i_Game)
            : base(i_Game)
        {
            m_Background           = new Background(this);
            m_Background.TintColor = Color.Red;
            m_GameOverMessage      = new Sprite(k_GameOverAssetName, this);
            m_Instructions         = new Sprite(k_InstructionsAssetName, this);
            r_ScoreManager         = Game.Services.GetService(typeof(IScoreManager)) as IScoreManager;
            r_SoundManager         = Game.Services.GetService(typeof(SoundManager)) as ISoundManager;
            r_PlayScreen           = i_PlayScreen;
            MainMenuScreen.MainMenu.PlayClicked = mainMenu_PlayClicked;
            r_ScoreManager.AddScreen(this);

            this.Add(m_GameOverMessage);
            this.Add(m_Instructions);
            this.ActivationLength = TimeSpan.FromSeconds(k_ActivationLength);
            this.StateChanged    += gameOverScreen_StateChanged;
        }