MainMenuScreen.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #region File Description
  2. //-----------------------------------------------------------------------------
  3. // MainMenuScreen.cs
  4. //
  5. // Microsoft XNA Community Game Platform
  6. // Copyright (C) Microsoft Corporation. All rights reserved.
  7. //-----------------------------------------------------------------------------
  8. #endregion
  9. #region Using Statements
  10. using System;
  11. using Microsoft.Xna.Framework;
  12. using GameStateManagement;
  13. #endregion
  14. namespace MemoryMadness
  15. {
  16. class MainMenuScreen : MenuScreen
  17. {
  18. #region Initializations
  19. public MainMenuScreen()
  20. : base("")
  21. {
  22. // Create our menu entries.
  23. MenuEntry startGameMenuEntry = new MenuEntry("Start");
  24. MenuEntry highScoreMenuEntry = new MenuEntry("High scores");
  25. MenuEntry exitMenuEntry = new MenuEntry("Exit");
  26. // Hook up menu event handlers.
  27. startGameMenuEntry.Selected += StartGameMenuEntrySelected;
  28. highScoreMenuEntry.Selected += HighScoreMenuEntrySelected;
  29. exitMenuEntry.Selected += OnCancel;
  30. // Add entries to the menu.
  31. MenuEntries.Add(startGameMenuEntry);
  32. MenuEntries.Add(highScoreMenuEntry);
  33. MenuEntries.Add(exitMenuEntry);
  34. }
  35. #endregion
  36. #region Update
  37. /// <summary>
  38. /// Respond to "High Score" Item Selection
  39. /// </summary>
  40. /// <param name="sender"></param>
  41. /// <param name="e"></param>
  42. void HighScoreMenuEntrySelected(object sender, EventArgs e)
  43. {
  44. foreach (GameScreen screen in ScreenManager.GetScreens())
  45. screen.ExitScreen();
  46. ScreenManager.AddScreen(new BackgroundScreen(true), null);
  47. ScreenManager.AddScreen(new HighScoreScreen(), null);
  48. }
  49. /// <summary>
  50. /// Respond to "Play" Item Selection
  51. /// </summary>
  52. /// <param name="sender"></param>
  53. /// <param name="e"></param>
  54. void StartGameMenuEntrySelected(object sender, EventArgs e)
  55. {
  56. foreach (GameScreen screen in ScreenManager.GetScreens())
  57. screen.ExitScreen();
  58. // if a saved game exists, let the user decide whether or not to use it
  59. // by moving to a sub-menu
  60. if (PhoneApplicationService.Current.State.ContainsKey("CurrentLevel") &&
  61. (int)PhoneApplicationService.Current.State["CurrentLevel"] > 1)
  62. {
  63. ScreenManager.AddScreen(new BackgroundScreen(false), null);
  64. ScreenManager.AddScreen(new NewGameSubMenuScreen(), null);
  65. }
  66. else
  67. {
  68. ScreenManager.AddScreen(new LoadingAndInstructionsScreen(false), null);
  69. }
  70. }
  71. /// <summary>
  72. /// Respond to "Exit" Item Selection
  73. /// </summary>
  74. /// <param name="playerIndex"></param>
  75. protected override void OnCancel(PlayerIndex playerIndex)
  76. {
  77. HighScoreScreen.SaveHighscore();
  78. ScreenManager.Game.Exit();
  79. }
  80. #endregion
  81. }
  82. }