99 lines
3.0 KiB
C#
99 lines
3.0 KiB
C#
|
#region File Description
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// MainMenuScreen.cs
|
||
|
//
|
||
|
// Microsoft XNA Community Game Platform
|
||
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
#endregion
|
||
|
|
||
|
#region Using Statements
|
||
|
using Microsoft.Xna.Framework;
|
||
|
#endregion
|
||
|
|
||
|
namespace GameStateManagement
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// The main menu screen is the first thing displayed when the game starts up.
|
||
|
/// </summary>
|
||
|
class MainMenuScreen : MenuScreen
|
||
|
{
|
||
|
#region Initialization
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// Constructor fills in the menu contents.
|
||
|
/// </summary>
|
||
|
public MainMenuScreen()
|
||
|
: base("Main Menu")
|
||
|
{
|
||
|
// Create our menu entries.
|
||
|
MenuEntry playGameMenuEntry = new MenuEntry("Play Game");
|
||
|
MenuEntry optionsMenuEntry = new MenuEntry("Options");
|
||
|
MenuEntry exitMenuEntry = new MenuEntry("Exit");
|
||
|
|
||
|
// Hook up menu event handlers.
|
||
|
playGameMenuEntry.Selected += PlayGameMenuEntrySelected;
|
||
|
optionsMenuEntry.Selected += OptionsMenuEntrySelected;
|
||
|
exitMenuEntry.Selected += OnCancel;
|
||
|
|
||
|
// Add entries to the menu.
|
||
|
MenuEntries.Add(playGameMenuEntry);
|
||
|
MenuEntries.Add(optionsMenuEntry);
|
||
|
MenuEntries.Add(exitMenuEntry);
|
||
|
}
|
||
|
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region Handle Input
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// Event handler for when the Play Game menu entry is selected.
|
||
|
/// </summary>
|
||
|
void PlayGameMenuEntrySelected(object sender, PlayerIndexEventArgs e)
|
||
|
{
|
||
|
LoadingScreen.Load(ScreenManager, true, e.PlayerIndex,
|
||
|
new GameplayScreen());
|
||
|
}
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// Event handler for when the Options menu entry is selected.
|
||
|
/// </summary>
|
||
|
void OptionsMenuEntrySelected(object sender, PlayerIndexEventArgs e)
|
||
|
{
|
||
|
ScreenManager.AddScreen(new OptionsMenuScreen(), e.PlayerIndex);
|
||
|
}
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// When the user cancels the main menu, ask if they want to exit the sample.
|
||
|
/// </summary>
|
||
|
protected override void OnCancel(PlayerIndex playerIndex)
|
||
|
{
|
||
|
const string message = "Are you sure you want to exit this sample?";
|
||
|
|
||
|
MessageBoxScreen confirmExitMessageBox = new MessageBoxScreen(message);
|
||
|
|
||
|
confirmExitMessageBox.Accepted += ConfirmExitMessageBoxAccepted;
|
||
|
|
||
|
ScreenManager.AddScreen(confirmExitMessageBox, playerIndex);
|
||
|
}
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// Event handler for when the user selects ok on the "are you sure
|
||
|
/// you want to exit" message box.
|
||
|
/// </summary>
|
||
|
void ConfirmExitMessageBoxAccepted(object sender, PlayerIndexEventArgs e)
|
||
|
{
|
||
|
ScreenManager.Game.Exit();
|
||
|
}
|
||
|
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
}
|