public MainMenuScreen(ScreenManager manager, BackgroundScreen b, bool touch)
            : base(String.Empty)
        {
            screenManager = manager;
            touchState    = touch;
            screenManager.Game.IsMouseVisible = true;
            IsPopup = true;

            // Erstellen der menüeinträge
            MenuEntry startGameMenuEntry  = new MenuEntry("Play");
            MenuEntry optionGameMenuEntry = new MenuEntry("Options");
            MenuEntry highscoreGameMenu   = new MenuEntry("Highscores");
            MenuEntry exitMenuEntry       = new MenuEntry("Exit");


            // menu eventhandler werden angelegt
            startGameMenuEntry.Selected  += StartGameMenuEntrySelected;
            optionGameMenuEntry.Selected += OptionGameMenuSelected;
            highscoreGameMenu.Selected   += HighscoreGameMenuSelected;
            exitMenuEntry.Selected       += OnCancel;

            // Einträge werden zu liste hinzugefügt
            MenuEntries.Add(startGameMenuEntry);
            MenuEntries.Add(optionGameMenuEntry);
            MenuEntries.Add(highscoreGameMenu);
            MenuEntries.Add(exitMenuEntry);

            bscreen = b;
            head    = new Flyinghead(screenManager);

            text = new BouncingText("Loading", new Vector2(750, 500), 450, 550, 5, screenManager);
        }
        public GameplayScreen(ScreenManager manager, int id, bool touchState, Flyinghead head, BouncingText text)
        {
            //Allgemeine Initialisierungen
            screenManager = manager;
            screenManager.endBossActive = false;
            collision = new Collision();

            m_levelId   = id;
            m_gameSpeed = 10;

            bouncingText = text;
            flyinghead   = head;

            //Spielelemente
            startWeapon = new Weapon();
            player      = new Player();
            playerInput = new Input();

            levelEins            = new Level();
            m_enemyAnimationList = new List <Animation>();

            //Level
            m_Background1 = new Background();
            m_Background2 = new Background();
            m_Background3 = new Background();
            m_Background4 = new Background();
            m_Background5 = new Background();


            //Input
            listOfRectangles     = new List <Rectangle>();
            r_backwards          = new Rectangle(0, 1080 - 160, 80, 160);
            r_forward            = new Rectangle(90, 1080 - 160, 80, 160);
            r_shoot              = new Rectangle(1600, 700, 320, 380);
            listOfTouchLocations = new List <TouchLocation>();
            tc           = TouchPanel.GetCapabilities();
            b_touchState = touchState;
            helper       = new Helper(screenManager);

            if (b_touchState == true)
            {
                m_buttons = new ButtonsDraw();
            }

            m_textures = new Texture2D[5];

            manager.audioFileSystem.menuTheme.Stop();
            audioFileSystem = screenManager.audioFileSystem;
            imageFileSystem = screenManager.imageFileSystem;


            deathApplied = false;
            screenManager.audioFileSystem.s_levelOneTheme.IsLooped = true;
            victoryApplied   = false;
            bossThemeStarted = false;

            //Zählt runter bei null = Tod
            m_countdown = 300;
        }
        /// <summary>
        ///Privater Konstruktur, Loadingscreen wird über die Methode Load aufgerufen
        /// </summary>
        private LoadingScreen(ScreenManager screenManager, bool loadingIsSlow,
                              GameScreen[] screensToLoad, BouncingText bouncingText, Flyinghead flyinghead)
        {
            this.loadingIsSlow = loadingIsSlow;
            this.screensToLoad = screensToLoad;

            TransitionOnTime = TimeSpan.FromSeconds(0.5);

            TransitionOnTime = TimeSpan.FromSeconds(0.5);



            head = flyinghead;
            head.startInLoadingScreen();
            text = bouncingText;
        }
        /// <summary>
        /// Aktiviert den Loadingscreen
        /// </summary>
        public static void Load(ScreenManager screenManager, bool loadingIsSlow,
                                PlayerIndex?controllingPlayer, Flyinghead head, BouncingText text,
                                params GameScreen[] screensToLoad)
        {
            // Alle bisher aktiven gamescreens werden deaktiviert
            foreach (GameScreen screen in screenManager.GetScreens())
            {
                screen.ExitScreen();
            }

            // erstellt einen aktiven loadingscreen
            LoadingScreen loadingScreen = new LoadingScreen(screenManager,
                                                            loadingIsSlow,
                                                            screensToLoad, text, head);

            screenManager.AddScreen(loadingScreen, controllingPlayer);
        }