| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- //-----------------------------------------------------------------------------
- // MessageBoxScreen.cs
- // Adapted from NetworkStateManagement sample for Blackjack
- // Shows a simple message box with OK button
- //-----------------------------------------------------------------------------
- using System;
- using Microsoft.Xna.Framework;
- using GameStateManagement;
- using Microsoft.Xna.Framework.Graphics;
- namespace Blackjack
- {
- /// <summary>
- /// A popup screen that displays a message and waits for the user to acknowledge.
- /// </summary>
- class MessageBoxScreen : GameScreen
- {
- string message;
- MenuEntry okMenuEntry;
- public event EventHandler<PlayerIndexEventArgs> Accepted;
- public MessageBoxScreen(string message)
- {
- this.message = message;
- IsPopup = true;
- }
- public override void LoadContent()
- {
- okMenuEntry = new MenuEntry(Resources.OK);
- okMenuEntry.Selected += OkMenuEntrySelected;
- //MenuEntries.Add(okMenuEntry);
- base.LoadContent();
- }
- void OkMenuEntrySelected(object sender, PlayerIndexEventArgs e)
- {
- Accepted?.Invoke(this, e);
- ExitScreen();
- }
- public override void Draw(GameTime gameTime)
- {
- ScreenManager.FadeBackBufferToBlack(0.5f);
- SpriteBatch spriteBatch = ScreenManager.SpriteBatch;
- SpriteFont font = ScreenManager.Font;
- Vector2 viewportSize = new Vector2(
- ScreenManager.BaseScreenSize.X,
- ScreenManager.BaseScreenSize.Y);
- Vector2 textSize = font.MeasureString(message);
- Vector2 position = (viewportSize - textSize) / 2;
- spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, ScreenManager.GlobalTransformation);
- spriteBatch.DrawString(font, message, position, Color.White);
- spriteBatch.End();
- }
- }
- }
|