/// <summary> /// Draws the menu at the indicated level. /// </summary> /// <param name="menu">the menu to draw</param> /// <param name="level">the level (height) of the menu</param> /// <param name="xOffset">the offset of the menu</param> /// <remarks> /// The menu text comes from the _menuStructure field. The level indicates the height /// of the menu, to enable sub menus. The xOffset repositions the menu horizontally /// to allow the submenus to be positioned correctly. /// </remarks> private static void DrawButtons(int menu, int level, int xOffset) { int btnTop; Rectangle toDraw = new Rectangle(); btnTop = MENU_TOP - (MENU_GAP + BUTTON_HEIGHT) * level; int i; var loopTo = _menuStructure[menu].Length - 1; for (i = 0; i <= loopTo; i++) { int btnLeft; btnLeft = MENU_LEFT + BUTTON_SEP * (i + xOffset); // SwinGame.FillRectangle(Color.White, btnLeft, btnTop, BUTTON_WIDTH, BUTTON_HEIGHT) toDraw.X = btnLeft + TEXT_OFFSET; toDraw.Y = btnTop + TEXT_OFFSET; toDraw.Width = BUTTON_WIDTH; toDraw.Height = BUTTON_HEIGHT; //SwinGame.DrawText() string textToDraw = _menuStructure[menu][i]; UtilityFunctions.DrawTextLines(_menuStructure[menu][i], MENU_COLOR, Color.Black, GameResources.GameFont("Menu"), FontAlignment.AlignCenter, toDraw); if (SwinGame.MouseDown(MouseButton.LeftButton) & IsMouseOverMenu(i, level, xOffset)) { SwinGame.DrawRectangle(HIGHLIGHT_COLOR, btnLeft, btnTop, BUTTON_WIDTH, BUTTON_HEIGHT); } } }
private static void ShowMessage(string message, int number) { const int TX = 310; const int TY = 493; const int TW = 200; const int TH = 25; const int STEPS = 5; const int BG_X = 279; const int BG_Y = 453; int fullW; Rectangle toDraw = new Rectangle(); fullW = 260 * number / STEPS; SwinGame.DrawBitmap(_LoaderEmpty, BG_X, BG_Y); SwinGame.DrawCell(_LoaderFull, 0, BG_X, BG_Y); // SwinGame.DrawBitmapPart(_LoaderFull, 0, 0, fullW, 66, BG_X, BG_Y) toDraw.X = TX; toDraw.Y = TY; toDraw.Width = TW; toDraw.Height = TH; UtilityFunctions.DrawTextLines(message, Color.White, Color.Transparent, _LoadingFont, FontAlignment.AlignCenter, toDraw); // SwinGame.DrawTextLines(message, Color.White, Color.Transparent, _LoadingFont, FontAlignment.AlignCenter, TX, TY, TW, TH) SwinGame.RefreshScreen(); SwinGame.ProcessEvents(); }
/// <summary> /// Draw the end of the game screen, shows the win/lose state /// </summary> public static void DrawEndOfGame() { Rectangle toDraw = new Rectangle(); string whatShouldIPrint; UtilityFunctions.DrawField(GameController.ComputerPlayer.PlayerGrid, GameController.ComputerPlayer, true); UtilityFunctions.DrawSmallField(GameController.HumanPlayer.PlayerGrid, GameController.HumanPlayer); toDraw.X = 0; toDraw.Y = 250; toDraw.Width = SwinGame.ScreenWidth(); toDraw.Height = SwinGame.ScreenHeight(); if (GameController.HumanPlayer.IsDestroyed) { whatShouldIPrint = "YOU LOSE!"; } else { whatShouldIPrint = "-- WINNER --"; } UtilityFunctions.DrawTextLines(whatShouldIPrint, Color.White, Color.Transparent, GameResources.GameFont("ArialLarge"), FontAlignment.AlignCenter, toDraw); }