/// <summary> /// Load content the will be used to create the help screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont font = shared.Load<SpriteFont>("Font/menufont"); detailsTemplate.Title = new TextLine("How To Play", font, new Color(192, 192, 192)); exitMenuEntry = new MenuButton("Back", font); exitMenuEntry.Selected += OnCancel; detailsTemplate.Buttons[DetailsTemplate.Selection.Middle] = exitMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Middle; helpImage = shared.Load<Texture2D>("Texture/PuzzlePathScreenShot"); }
/// <summary> /// Load content that will be used to create the help screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont titleFont = shared.Load<SpriteFont>("Font/menufont"); detailsTemplate.Title = new TextLine("Controls", titleFont, new Color(192, 192, 192)); IList<IMenuLine> controlScheme = detailsTemplate.Lines; controlScheme.Clear(); foreach (string name in ControlScheme) controlScheme.Add(new TextLine(name, titleFont, Color.Black, .75f)); exitMenuEntry = new MenuButton("Back", titleFont); exitMenuEntry.Selected += OnCancel; detailsTemplate.Buttons[DetailsTemplate.Selection.Middle] = exitMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Middle; }
public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont font = shared.Load<SpriteFont>("Font/menufont"); content = shared; menuTemplate.Title = new TextLine("How To Play", font, new Color(192, 192, 192)); // List that contains the menu buttons IList<MenuButton> items = menuTemplate.Items; // Create the Menu Buttons, attach what happens for each entry, // and add the menu buttons to the list of buttons. MenuButton gameDescriptionMenuEntry = new MenuButton("The Game's Objective", font); gameDescriptionMenuEntry.Selected += GameObjectiveMenuEntrySelected; items.Add(gameDescriptionMenuEntry); MenuButton controlsDescriptionMenuEntry = new MenuButton("Controls", font); controlsDescriptionMenuEntry.Selected += ControlsDescriptionMenuEntrySelected; items.Add(controlsDescriptionMenuEntry); MenuButton gameObjectsDescriptionMenuEntry = new MenuButton("Game Objects", font); gameObjectsDescriptionMenuEntry.Selected += GameObjectsDescriptionMenuEntrySelected; items.Add(gameObjectsDescriptionMenuEntry); MenuButton gameScreenShotMenuEntry = new MenuButton("Example", font); gameScreenShotMenuEntry.Selected += GameScreenShotMenuEntrySelected; items.Add(gameScreenShotMenuEntry); MenuButton levelEditorDescriptionMenuEntry = new MenuButton("Editing Levels", font); levelEditorDescriptionMenuEntry.Selected += LevelEditorDescriptionMenuEntrySelected; items.Add(levelEditorDescriptionMenuEntry); MenuButton exitMenuEntry = new MenuButton("Back", font); exitMenuEntry.Selected += OnCancel; items.Add(exitMenuEntry); }
/// <summary> /// Load content the will be used to create the help menu screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont font = shared.Load<SpriteFont>("Font/menufont"); detailsTemplate.Title = new TextLine("Welcome to Puzzle Path", font, new Color(192, 192, 192)); IList<IMenuLine> description = detailsTemplate.Lines; description.Clear(); foreach (string name in gameDescription) description.Add(new TextLine(name, font, Color.Black, .75f)); exitMenuEntry = new MenuButton("Back", font); exitMenuEntry.Selected += OnCancel; detailsTemplate.Buttons[DetailsTemplate.Selection.Middle] = exitMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Middle; }
/// <summary> /// Load the assets required for the Main Menu. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); Font = shared.Load<SpriteFont>("Font/menufont"); content = shared; menuTemplate.Title = new TextLine("Puzzle Path", Font, new Color(192, 192, 192)); // List that contains the menu buttons IList<MenuButton> items = menuTemplate.Items; // Create the Menu Buttons, attach what happens for each entry, // and add the menu buttons to the list of buttons. MenuButton playGameMenuEntry = new MenuButton("Play Game", Font); playGameMenuEntry.Selected += PlayGameMenuEntrySelected; items.Add(playGameMenuEntry); MenuButton creationModeMenuEntry = new MenuButton("Level Creator", Font); creationModeMenuEntry.Selected += creationModeMenuEntrySelected; items.Add(creationModeMenuEntry); MenuButton howToPlayMenuEntry = new MenuButton("How To Play", Font); howToPlayMenuEntry.Selected += howToPlayMenuEntrySelected; items.Add(howToPlayMenuEntry); MenuButton optionsMenuEntry = new MenuButton("Options", Font); optionsMenuEntry.Selected += OptionsMenuEntrySelected; items.Add(optionsMenuEntry); MenuButton creditsMenuEntry = new MenuButton("Credits", Font); creditsMenuEntry.Selected += CreditsMenuEntrySelected; items.Add(creditsMenuEntry); MenuButton exitMenuEntry = new MenuButton("Exit", Font); exitMenuEntry.Selected += OnCancel; items.Add(exitMenuEntry); }
/// <summary> /// Load the content that will be used to create the screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); Font = shared.Load<SpriteFont>("Font/menufont"); int numberOfMinutes = CompletionTime / 60; int numberOfSeconds = CompletionTime % 60; string minutes; string seconds; minutes = Convert.ToString(numberOfMinutes); if (numberOfSeconds < 10) { seconds = "0" + numberOfSeconds; } else { seconds = Convert.ToString(numberOfSeconds); } detailsTemplate.Title = new TextLine(LevelName, Font, new Color(192, 192, 192)); startMenuEntry = new MenuButton("Start", Font); startMenuEntry.Selected += StartMenuEntrySelected; detailsTemplate.Buttons[DetailsTemplate.Selection.Right] = startMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Right; exitMenuEntry = new MenuButton("Back", Font); exitMenuEntry.Selected += OnCancel; detailsTemplate.Buttons[DetailsTemplate.Selection.Left] = exitMenuEntry; IList<IMenuLine> stats = detailsTemplate.Lines; stats.Clear(); stats.Add(new TextLine("Status: " + (Completed ? "Completed" : "Incomplete"), Font, Color.White)); stats.Add(new Spacer(Font.LineSpacing)); stats.Add(new TextLine("Completion Time: " + minutes + ":" + seconds, Font, Color.White)); stats.Add(new Spacer(Font.LineSpacing)); stats.Add(new TextLine("Score: " + LevelScore, Font, Color.White)); }
private void UpdateCurrentPage() { items.Clear(); int previousLevel = 0; for (int count = 0; CurrentLevel < levelSet.Count && count < numberOfLevelsPerPage; count++) { levelInfo = levelSet.ElementAt<LevelInfo>(CurrentLevel); aLevelMenuEntry = new MenuButton(levelInfo.LevelName, font); aLevelMenuEntry.OriginalColor = Color.Gray; previousLevel = CurrentLevel - 1; if (previousLevel >= 0) { if (levelSet[previousLevel].Completed || levelInfo.LevelName == "Custom Level") { // Meh. -Jorenz aLevelMenuEntry.Selected += () => ALevelMenuEntrySelected(menuTemplate.SelectedItem); aLevelMenuEntry.OriginalColor = Color.White; } } else { previousLevel = 0; aLevelMenuEntry.Selected += () => ALevelMenuEntrySelected(menuTemplate.SelectedItem); aLevelMenuEntry.OriginalColor = Color.White; } items.Add(aLevelMenuEntry); CurrentLevel = CurrentLevel + 1; setOfLevels = count + 1; } if ((levelSet.Count - CurrentLevel) > 0) { items.Add(nextMenuEntry); } if ((CurrentLevel - numberOfLevelsPerPage) > 0) { items.Add(backMenuEntry); } items.Add(exitMenuEntry); }
/// <summary> /// Load content that will be used to create the level select screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); font = shared.Load<SpriteFont>("Font/menufont"); content = shared; menuTemplate.Title = new TextLine("Select A Level", font, new Color(192, 192, 192)); exitMenuEntry = new MenuButton("Back to Main Menu", font); exitMenuEntry.Selected += OnCancel; nextMenuEntry = new MenuButton("Next", font); nextMenuEntry.Selected += NextMenuEntrySelected; backMenuEntry = new MenuButton("Previous", font); backMenuEntry.Selected += BackMenuEntrySelected; UpdateCurrentPage(); }
/// <summary> /// Load the buttons and the Content that will be used to display the Credits. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont titleFont = shared.Load<SpriteFont>("Font/menufont"); SpriteFont textFont = shared.Load<SpriteFont>("Font/textfont"); detailsTemplate.Title = new TextLine("Credits", titleFont, new Color(192, 192, 192)); MenuButton exitMenuEntry = new MenuButton("Back", titleFont); exitMenuEntry.Selected += OnCancel; detailsTemplate.Buttons[DetailsTemplate.Selection.Middle] = exitMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Middle; IList<IMenuLine> credits = detailsTemplate.Lines; credits.Clear(); credits.Add(new TextLine("Team Members", textFont, Color.White, 1.25f)); credits.Add(new Spacer(textFont.LineSpacing)); foreach (string name in TeamMembers) credits.Add(new TextLine(name, textFont, Color.Black, 1.25f)); credits.Add(new Spacer(textFont.LineSpacing)); credits.Add(new Spacer(textFont.LineSpacing)); credits.Add(new TextLine("Organizations", textFont, Color.White, 1.25f)); credits.Add(new Spacer(textFont.LineSpacing)); foreach (string name in Organizations) credits.Add(new TextLine(name, textFont, Color.Black, 1.25f)); foreach (string name in Individuals) credits.Add(new TextLine(name, textFont, Color.Black, 1.25f)); }
/// <summary> /// Loads graphics content for this screen. This uses the shared ContentManager /// provided by the Game class, so the content will remain loaded forever. /// Whenever a subsequent MessageBoxScreen tries to load this same content, /// it will just get back another reference to the already loaded data. /// </summary> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); gradientTexture = shared.Load<Texture2D>("Texture/gradient"); font = shared.Load<SpriteFont>("Font/menufont"); messageBoxTemplate.Title = new TextLine(title, font, new Color(192, 192, 192)); if (LeftButtonText != null) { MenuButton leftButton = new MenuButton(LeftButtonText, font); leftButton.Selected += LeftMenuEntrySelected; messageBoxTemplate.Buttons[MessageBoxTemplate.Selection.Left] = leftButton; messageBoxTemplate.SelectedItem = MessageBoxTemplate.Selection.Left; } if (MiddleButtonText != null) { MenuButton centerButton = new MenuButton(MiddleButtonText, font); centerButton.Selected += MiddleMenuEntrySelected; messageBoxTemplate.Buttons[MessageBoxTemplate.Selection.Middle] = centerButton; } if (RightButtonText != null) { MenuButton rightButton = new MenuButton(RightButtonText, font); rightButton.Selected += RightMenuEntrySelected; messageBoxTemplate.Buttons[MessageBoxTemplate.Selection.Right] = rightButton; } }
/// <summary> /// Load the content that will be used to create the help screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); Font = shared.Load<SpriteFont>("Font/menufont"); foreach (string name in gameContent) { objectContent.Add(shared.Load<Texture2D>(name)); } detailsTemplate.Title = new TextLine("Game Objects", Font, new Color(192, 192, 192)); IList<IMenuLine> lines = detailsTemplate.Lines; lines.Clear(); for (int i = 0; i < gameObjects.Length; ++i) { string text = gameObjects[i]; Texture2D image = objectContent[i]; TextLine caption = new TextLine(text, Font, Color.Black, 0.75f); caption.Align = TextAlignment.LEFT; lines.Add(new ImageMenuLine(image, caption)); } exitMenuEntry = new MenuButton("Back", Font); exitMenuEntry.Selected += OnCancel; detailsTemplate.Buttons[DetailsTemplate.Selection.Middle] = exitMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Middle; }
/// <summary> /// Load the content that will be displayed on the screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont font = shared.Load<SpriteFont>("Font/menufont"); content = shared; menuTemplate.Title = new TextLine("Paused", font, new Color(192, 192, 192)); IList<MenuButton> items = menuTemplate.Items; // Create new menu buttons and attach to them events. // Add menu buttons the list that will be dislayed on the screen. MenuButton resumeGameMenuEntry = new MenuButton("Resume Game", font); resumeGameMenuEntry.Selected += OnCancel; items.Add(resumeGameMenuEntry); // Only allow the player to restart the level in simulation mode. MenuButton restartLevelMenuEntry = new MenuButton("Restart Level", font); restartLevelMenuEntry.Selected += RestartLevelMenuEntrySelected; if (!EditorMode) { items.Add(restartLevelMenuEntry); } MenuButton restartLevelEditor; if (EditorMode) { if (custom) restartLevelEditor = new MenuButton("Empty Level", font); else restartLevelEditor = new MenuButton("Restart Level Editor", font); } else { restartLevelEditor = new MenuButton("Back to Level Editor", font); } restartLevelEditor.Selected += RestartLevelEditorMenuEntrySelected; items.Add(restartLevelEditor); MenuButton howToPlayMenuEntry = new MenuButton("How to Play", font); howToPlayMenuEntry.Selected += HowToPlayMenuEntrySelected; items.Add(howToPlayMenuEntry); MenuButton levelSelectMenuEntry = new MenuButton("Back to Level Select", font); levelSelectMenuEntry.Selected += LevelSelectMenuEntrySelected; items.Add(levelSelectMenuEntry); MenuButton quitGameMenuEntry = new MenuButton("Back to Main Menu", font); quitGameMenuEntry.Selected += QuitGameMenuEntrySelected; items.Add(quitGameMenuEntry); }
/// <summary> /// Load the content that will be used to display the screen. Calculate /// the players score and display all the data on the screen. /// </summary> /// <param name="shared"></param> public override void LoadContent(ContentManager shared) { base.LoadContent(shared); content = shared; SpriteFont font = shared.Load<SpriteFont>("Font/menufont"); // Calculate the players score based on the data of the // players actions in the game. int treasureScore = 500 * levelData.TreasuresCollected; int ballsLeftScore = 150 * levelData.BallsLeft; string fullPath = Configuration.UserDataPath + Path.DirectorySeparatorChar + "levellist.xml"; int timeSpentInSeconds = levelData.TimeSpent % 60; int timeSpentInMinutes = levelData.TimeSpent / 60; int parTimeInSeconds = levelData.ParTime % 60; int parTimeInMinutes = levelData.ParTime / 60; string timeSpentSeconds = Convert.ToString(timeSpentInSeconds); string parTimeSeconds = Convert.ToString(parTimeInSeconds); // Add a zero in front of the number of seconds if the // seconds is less than 10. This is for the formatting of the time. if (timeSpentInSeconds < 10) { timeSpentSeconds = "0" + timeSpentInSeconds; } if (parTimeInSeconds < 10) { parTimeSeconds = "0" + parTimeInSeconds; } detailsTemplate = new DetailsTemplate(); // Load the list of levels levelSet = LevelGroup.Load(fullPath); detailsTemplate.Title = new TextLine("Congratulations, Level Complete.", font, Color.White); IList<IMenuLine> description = detailsTemplate.Lines; // Add the description of how the user's score was generated. description.Add(new TextLine("Treasures obtained: " + levelData.TreasuresCollected + "/" + levelData.TreasuresInLevel + " (+" + treasureScore + ")", font, Color.White)); description.Add(new TextLine("Balls remaining: " + levelData.BallsLeft + " (+" + ballsLeftScore + ")", font, Color.White)); description.Add(new TextLine("Time spent: " + timeSpentInMinutes + ":" + timeSpentSeconds, font, Color.White)); description.Add(new TextLine("Par time: " + parTimeInMinutes + ":" + parTimeSeconds, font, Color.White)); if (levelData.TimeSpent <= levelData.ParTime) { description.Add(new TextLine("Par time met! (+100)", font, Color.White)); } description.Add(new TextLine("Your score is: " + levelData.Score, font, Color.White)); // Create the Buttons and attach the events. retryMenuEntry = new MenuButton("Retry Level", font); retryMenuEntry.Selected += RetryMenuEntrySelected; detailsTemplate.Buttons[DetailsTemplate.Selection.Left] = retryMenuEntry; levelSelectMenuEntry = new MenuButton("Level Select", font); levelSelectMenuEntry.Selected += LevelSelectMenuEntrySelected; detailsTemplate.Buttons[DetailsTemplate.Selection.Middle] = levelSelectMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Middle; // Check if there is a next level in the list. If there exist one // display the next Level Button, otherwise don't. if (levelSet.FindNextLevel(levelData.LevelName) != null) { nextLevelMenuEntry = new MenuButton("Next Level", font); nextLevelMenuEntry.Selected += NextLevelMenuEntrySelected; detailsTemplate.Buttons[DetailsTemplate.Selection.Right] = nextLevelMenuEntry; detailsTemplate.SelectedItem = DetailsTemplate.Selection.Right; } SaveUserProgress(); }
public override void LoadContent(ContentManager shared) { base.LoadContent(shared); SpriteFont font = shared.Load<SpriteFont>("Font/menufont"); menuTemplate.Title = new TextLine("Options", font, new Color(192, 192, 192)); IList<MenuButton> items = menuTemplate.Items; soundMenuEntry = new MenuButton(string.Empty, font); soundMenuEntry.Selected += SoundMenuEntrySelected; items.Add(soundMenuEntry); controllerConfigurationMenuEntry = new MenuButton(string.Empty, font); controllerConfigurationMenuEntry.Selected += ControllerConfigurationMenuEntrySelected; items.Add(controllerConfigurationMenuEntry); apply = new MenuButton("Apply Changes", font); apply.Selected += OnApply; items.Add(apply); back = new MenuButton("Cancel", font); back.Selected += OnCancel; items.Add(back); // Warning messages firstWarningLine = new TextLine("The currently selected controller is not connected.", font, Color.Black); secondWarningLine = new TextLine("The change will not take effect.", font, Color.Black); // Get the current settings of the game. sound = Profile.Prefs.PlaySounds; currentControllerType = (int)Controller.InputType; currentControllerConnected = true; // Well, it has to be to even open this menu (for now). SetMenuEntryText(); }