#region File Description //----------------------------------------------------------------------------- // OptionsMenu.cs // // Microsoft XNA Community Game Platform // Copyright (C) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- #endregion #region Using Statements using System; using System.Collections.Generic; using System.Text; using GameStateManagement; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using CardsFramework; #endregion namespace Blackjack { class OptionsMenu : MenuScreen { Dictionary themes = new Dictionary(); AnimatedGameComponent card; Texture2D background; Rectangle safeArea; #region Initializations /// /// Initializes a new instance of the screen. /// public OptionsMenu() : base("") { } #endregion /// /// Loads content required by the screen, and initializes the displayed menu. /// public override void LoadContent() { safeArea = ScreenManager.SafeArea; // Create our menu entries. MenuEntry themeGameMenuEntry = new MenuEntry("Deck"); MenuEntry returnMenuEntry = new MenuEntry("Return"); // Hook up menu event handlers. themeGameMenuEntry.Selected += ThemeGameMenuEntrySelected; returnMenuEntry.Selected += OnCancel; // Add entries to the menu. MenuEntries.Add(themeGameMenuEntry); MenuEntries.Add(returnMenuEntry); themes.Add("Red", ScreenManager.Game.Content.Load( @"Images\Cards\CardBack_Red")); themes.Add("Blue", ScreenManager.Game.Content.Load( @"Images\Cards\CardBack_Blue")); background = ScreenManager.Game.Content.Load( @"Images\UI\table"); card = new AnimatedGameComponent(ScreenManager.Game, themes[MainMenuScreen.Theme]) { CurrentPosition = new Vector2(safeArea.Center.X, safeArea.Center.Y - 50) }; ScreenManager.Game.Components.Add(card); base.LoadContent(); } #region Update and Render /// /// Respond to "Theme" Item Selection /// /// /// void ThemeGameMenuEntrySelected(object sender, EventArgs e) { if (MainMenuScreen.Theme == "Red") { MainMenuScreen.Theme = "Blue"; } else { MainMenuScreen.Theme = "Red"; } card.CurrentFrame = themes[MainMenuScreen.Theme]; } /// /// Respond to "Return" Item Selection /// /// protected override void OnCancel(PlayerIndex playerIndex) { ScreenManager.Game.Components.Remove(card); ExitScreen(); } /// /// Draws the menu. /// /// public override void Draw(GameTime gameTime) { ScreenManager.SpriteBatch.Begin(); // Draw the card back ScreenManager.SpriteBatch.Draw(background, ScreenManager.GraphicsDevice.Viewport.Bounds, Color.White * TransitionAlpha); ScreenManager.SpriteBatch.End(); base.Draw(gameTime); } #endregion } }