//-----------------------------------------------------------------------------
// MainMenuScreen.cs
//
// Microsoft XNA Community Game Platform
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
using Microsoft.Xna.Framework;
namespace UserInterfaceSample
{
///
/// The main menu screen is the first thing displayed when the game starts up.
///
class MainMenuScreen : MenuScreen
{
///
/// Constructor fills in the menu contents.
///
public MainMenuScreen()
: base("Main Menu")
{
// Create our menu entries.
MenuEntry levelSelect = new MenuEntry("Select level");
levelSelect.Selected += SelectLevelPressed;
MenuEntries.Add(levelSelect);
MenuEntry highScores = new MenuEntry("High scores");
highScores.Selected += HighScoresPressed;
MenuEntries.Add(highScores);
}
///
/// Event handler for our Select Level button.
///
private void SelectLevelPressed(object sender, PlayerIndexEventArgs e)
{
// We use the loading screen to move to our level selection screen because the
// level selection screen needs to load in a decent amount of level art. The Load
// method will cause all current screens to exit, so to enable us to be able to
// easily come back from the level select screen, we must also pass down the
// background and main menu screens.
LoadingScreen.Load(
ScreenManager,
true,
e.PlayerIndex,
new BackgroundScreen(), new MainMenuScreen(), new LevelSelectScreen());
}
///
/// Event handler for our High Scores button.
///
private void HighScoresPressed(object sender, PlayerIndexEventArgs e)
{
ScreenManager.AddScreen(new HighScoreScreen(), e.PlayerIndex);
}
///
/// When the user cancels the main menu, we exit the game.
///
protected override void OnCancel(PlayerIndex playerIndex)
{
ScreenManager.Game.Exit();
}
}
}