예제 #1
0
    public TitleScreen(GraphicsDeviceManager gdm, SaveGameData _gameData)
    {
        PersonalLoadContent();
        int levelReach = _gameData.levelReached[_gameData.worldReached];
        menuState = GameMenuState.MenuStateMain;
        nextState = GameMenuState.MenuStateMain;

        SetDrawFrame(position);
        SetDrawTexture(titleScreenTexture);

        gamePlay = new Button(
            new Rectangle(  GraphicsDeviceManager.DefaultBackBufferWidth/2 - playButtonTexture.Width/2,
                            GraphicsDeviceManager.DefaultBackBufferHeight/2 - playButtonTexture.Height/2,
                            playButtonTexture.Width, playButtonTexture.Height), playButtonTexture);
        gamePlay.animatedBlink(15,-1);

        gameOption = new Button(new Rectangle(30, 380, 70, 70), gameOptionsTexture);

        back = new Button(new Rectangle(10, 60, 128, 64), backButtonTexture);

        cityChapterButton = new Button(new Rectangle(60, 140, 167, 99), cityChapterSelectTexture);
        caveChapterButton = new Button(new Rectangle(60, 330, 167, 99), caveChapterSelectTexture);
        cityChallengeChapterButton = new Button(new Rectangle(560, 140, 167, 99), cityChallengeChapterSelectTexture);
        caveChallengeChapterButton = new Button(new Rectangle(560, 330, 167, 99), caveChallengeChapterSelectTexture);
        tempContinueButton = new Button(new Rectangle(80, 380, 200, 80), devContinueTexture);
        // this if else is for checking if you are in the top row or bottom row of levels
        if (levelReach <= MAX_LEVELS/2)
        {
            for (int i = 0; i <= levelReach; i++)
            {
                Button b = new Button(new Rectangle(10 + i * 160, 150, 150, 100), devUnlockedTexture);
                b.setExtra(i);
                lockedLevels.AddLast(b);

            }
            for (int i = levelReach + 1; i <= MAX_LEVELS/2; i++)
            {
                Button b = new Button(new Rectangle(10 + i * 160, 150, 150, 100), devLockedTexture);
                b.setExtra(i);
                lockedLevels.AddLast(b);
            }
            for (int i = 0; i < MAX_LEVELS/2; i++)
            {
                Button b = new Button(new Rectangle(10 + i * 160, 300, 150, 100), devLockedTexture);
                b.setExtra(MAX_LEVELS/2+i);
                lockedLevels.AddLast(b);
            }
        }
        else
        {
            for (int i = 0; i < MAX_LEVELS/2; i++)
            {
                Button b = new Button(new Rectangle(10 + i * 160, 150, 150, 100), devUnlockedTexture);
                b.setExtra(i);
                lockedLevels.AddLast(b);
            }
            for (int i = 0; i <= levelReach-MAX_LEVELS/2; i++)
            {
                Button b = new Button(new Rectangle(10 + i * 160, 300, 150, 100), devUnlockedTexture);
                b.setExtra(MAX_LEVELS / 2 + i);
                lockedLevels.AddLast(b);
            }
            for (int i = levelReach-MAX_LEVELS/2 + 1; i < MAX_LEVELS- MAX_LEVELS/2; i++)
            {
                Button b = new Button(new Rectangle(10 + i * 160, 300, 150, 100), devLockedTexture);
                b.setExtra(MAX_LEVELS/2 + i);
                lockedLevels.AddLast(b);
            }
        }
        flag = GameMenuFlag.NoFlag;

        MusicManager.SetSong(associatedMusic);
        MusicManager.StartMusic();

        //Not sure why this doesnt work, but we'll need it eventually
        //System.IO.DirectoryInfo contentDir = new System.IO.DirectoryInfo("Level");
        //chapterFiles = contentDir.GetFiles();

        showOptionMenu = false;
        //optionAnimationTransition = false;
        optionsListView = new View(optionsClosed, gameOptionsTexture);

        pressedButton = cityChapterButton;

        PrepareNextState();
    }