MontyHallGame.MontyHallMessageBoxScreen Class Reference

A popup message box screen, used to display "are you sure?" confirmation messages. More...

Inheritance diagram for MontyHallGame.MontyHallMessageBoxScreen:
NewGamePhysics.StateManager.GameScreen

List of all members.

Public Member Functions

 MontyHallMessageBoxScreen (string message)
 Constructor automatically includes the standard "A=ok, B=cancel" usage text prompt.
 MontyHallMessageBoxScreen (string message, bool includeUsageText)
 Constructor lets the caller specify whether to include the standard "A=ok, B=cancel" usage text prompt.
override void LoadContent ()
 Loads graphics content for this screen. This uses the shared ContentManager provided by the Game class, so the content will remain loaded forever. Whenever a subsequent MessageBoxScreen tries to load this same content, it will just get back another reference to the already loaded data.
override void HandleInput (InputState input)
 Responds to user input, accepting or cancelling the message box.
override void Draw (GameTime gameTime)
 Draws the message box.

Events

EventHandler
< PlayerIndexEventArgs
Accepted
EventHandler
< PlayerIndexEventArgs
Cancelled

Detailed Description

A popup message box screen, used to display "are you sure?" confirmation messages.

Definition at line 20 of file MontyHallMessageBoxScreen.cs.


Constructor & Destructor Documentation

MontyHallGame.MontyHallMessageBoxScreen.MontyHallMessageBoxScreen ( string  message  ) 

Constructor automatically includes the standard "A=ok, B=cancel" usage text prompt.

Definition at line 43 of file MontyHallMessageBoxScreen.cs.

00044             : this(message, true)
00045         { }

MontyHallGame.MontyHallMessageBoxScreen.MontyHallMessageBoxScreen ( string  message,
bool  includeUsageText 
)

Constructor lets the caller specify whether to include the standard "A=ok, B=cancel" usage text prompt.

Definition at line 52 of file MontyHallMessageBoxScreen.cs.

00053         {
00054             const string usageText = "\nOK      : (A) button or [Enter]" +
00055                                      "\nCancel  : (B) button or [Esc]";
00056 
00057             if (includeUsageText)
00058             {
00059                 this.message = message + usageText;
00060             }
00061             else
00062             {
00063                 this.message = message;
00064             }
00065 
00066             IsPopup = true;
00067 
00068             TransitionOnTime = TimeSpan.FromSeconds(0.2);
00069             TransitionOffTime = TimeSpan.FromSeconds(0.2);
00070         }


Member Function Documentation

override void MontyHallGame.MontyHallMessageBoxScreen.Draw ( GameTime  gameTime  )  [virtual]

Draws the message box.

Reimplemented from NewGamePhysics.StateManager.GameScreen.

Definition at line 130 of file MontyHallMessageBoxScreen.cs.

00131         {
00132             SpriteBatch spriteBatch = ScreenManager.SpriteBatch;
00133             SpriteFont font = ScreenManager.Fonts["menu"];
00134 
00135             // Darken down any other screens that were drawn beneath the popup.
00136             ScreenManager.FadeBackBufferToBlack(TransitionAlpha * 2 / 3);
00137 
00138             // Center the message text in the viewport.
00139             Viewport viewport = ScreenManager.GraphicsDevice.Viewport;
00140             Vector2 viewportSize = new Vector2(viewport.Width, viewport.Height);
00141             Vector2 textSize = font.MeasureString(message);
00142             Vector2 textPosition = (viewportSize - textSize) / 2;
00143 
00144             // The background includes a border somewhat larger than the text itself.
00145             const int hPad = 32;
00146             const int vPad = 16;
00147 
00148             Rectangle backgroundRectangle = new Rectangle((int)textPosition.X - hPad,
00149                                                           (int)textPosition.Y - vPad,
00150                                                           (int)textSize.X + hPad * 2,
00151                                                           (int)textSize.Y + vPad * 2);
00152 
00153             // Fade the popup alpha during transitions.
00154             Color color = new Color(255, 255, 255, TransitionAlpha);
00155 
00156             spriteBatch.Begin();
00157 
00158             // Draw the background rectangle.
00159             spriteBatch.Draw(gradientTexture, backgroundRectangle, color);
00160 
00161             // Draw the message box text.
00162             spriteBatch.DrawString(font, message, textPosition, color);
00163 
00164             spriteBatch.End();
00165         }

override void MontyHallGame.MontyHallMessageBoxScreen.HandleInput ( InputState  input  )  [virtual]

Responds to user input, accepting or cancelling the message box.

Reimplemented from NewGamePhysics.StateManager.GameScreen.

Definition at line 95 of file MontyHallMessageBoxScreen.cs.

00096         {
00097             PlayerIndex playerIndex;
00098 
00099             // We pass in our ControllingPlayer, which may either be null (to
00100             // accept input from any player) or a specific index. If we pass a null
00101             // controlling player, the InputState helper returns to us which player
00102             // actually provided the input. We pass that through to our Accepted and
00103             // Cancelled events, so they can tell which player triggered them.
00104             if (input.IsMenuSelect(ControllingPlayer, out playerIndex))
00105             {
00106                 // Raise the accepted event, then exit the message box.
00107                 if (Accepted != null)
00108                     Accepted(this, new PlayerIndexEventArgs(playerIndex));
00109 
00110                 ExitScreen();
00111             }
00112             else if (input.IsMenuCancel(ControllingPlayer, out playerIndex))
00113             {
00114                 // Raise the cancelled event, then exit the message box.
00115                 if (Cancelled != null)
00116                     Cancelled(this, new PlayerIndexEventArgs(playerIndex));
00117 
00118                 ExitScreen();
00119             }
00120         }

override void MontyHallGame.MontyHallMessageBoxScreen.LoadContent (  )  [virtual]

Loads graphics content for this screen. This uses the shared ContentManager provided by the Game class, so the content will remain loaded forever. Whenever a subsequent MessageBoxScreen tries to load this same content, it will just get back another reference to the already loaded data.

Reimplemented from NewGamePhysics.StateManager.GameScreen.

Definition at line 79 of file MontyHallMessageBoxScreen.cs.

00080         {
00081             ContentManager content = ScreenManager.Game.Content;
00082 
00083             gradientTexture = content.Load<Texture2D>(@"Sprites\gradient");
00084         }


The documentation for this class was generated from the following file:

Generated by  doxygen 1.6.2