PauseScreen.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #region File Description
  2. //-----------------------------------------------------------------------------
  3. // pauseBackground.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. #endregion
  13. namespace HoneycombRush
  14. {
  15. class PauseScreen : MenuScreen
  16. {
  17. #region Initializations
  18. public PauseScreen()
  19. : base(string.Empty)
  20. {
  21. IsPopup = true;
  22. }
  23. /// <summary>
  24. /// Load screen resources
  25. /// </summary>
  26. public override void LoadContent()
  27. {
  28. AudioManager.PlaySound("menu");
  29. MenuEntry returnGameMenuEntry = new MenuEntry("Resume");
  30. returnGameMenuEntry.Scale = 0.7f;
  31. MenuEntry exitMenuEntry = new MenuEntry("Exit");
  32. // Calculate menu positions - we do this here since we want the screen
  33. // manager to be available
  34. int quarterViewportWidth = ScreenManager.GraphicsDevice.Viewport.Width / 4;
  35. int menuEntryHeight = SafeArea.Bottom - ScreenManager.ButtonBackground.Height * 2;
  36. returnGameMenuEntry.Position = new Vector2(quarterViewportWidth -
  37. ScreenManager.ButtonBackground.Width / 2, menuEntryHeight);
  38. exitMenuEntry.Position = new Vector2(3 * quarterViewportWidth -
  39. ScreenManager.ButtonBackground.Width / 2, menuEntryHeight);
  40. // Hook up menu event handlers.
  41. returnGameMenuEntry.Selected += ReturnGameMenuEntrySelected;
  42. exitMenuEntry.Selected += OnCancel;
  43. //// Add entries to the menu.
  44. MenuEntries.Add(returnGameMenuEntry);
  45. MenuEntries.Add(exitMenuEntry);
  46. base.LoadContent();
  47. }
  48. #endregion
  49. #region Update
  50. /// <summary>
  51. /// Respond to "Return" Item Selection
  52. /// </summary>
  53. /// <param name="sender"></param>
  54. /// <param name="e"></param>
  55. void ReturnGameMenuEntrySelected(object sender, EventArgs e)
  56. {
  57. AudioManager.PauseResumeSounds(true);
  58. foreach (GameScreen screen in ScreenManager.GetScreens())
  59. {
  60. if (!(screen is GameplayScreen))
  61. {
  62. screen.ExitScreen();
  63. }
  64. }
  65. }
  66. /// <summary>
  67. /// Respond to "Quit Game" Item Selection
  68. /// </summary>
  69. /// <param name="playerIndex"></param>
  70. protected override void OnCancel(PlayerIndex playerIndex)
  71. {
  72. foreach (GameScreen screen in ScreenManager.GetScreens())
  73. {
  74. screen.ExitScreen();
  75. }
  76. ScreenManager.AddScreen(new BackgroundScreen("titleScreen"), null);
  77. ScreenManager.AddScreen(new MainMenuScreen(), null);
  78. }
  79. #endregion
  80. }
  81. }