public void setMenuStage(MenuStage stageToSet) { disableElements(); outputText.color = new Color(0.2f, 0.2f, 0.2f); switch (stageToSet) { case MenuStage.menu: outputText.text = "What would you like to do?"; menuButtonCanvas.gameObject.SetActive(true); break; case MenuStage.login: outputText.text = "Enter your account details."; textEntryCanvas.gameObject.SetActive(true); loginSubmitCanvas.gameObject.SetActive(true); textBoxUsername.text = ""; textBoxPassword.text = ""; break; case MenuStage.create: outputText.text = "Enter your desired account details."; textEntryCanvas.gameObject.SetActive(true); createSubmitCanvas.gameObject.SetActive(true); textBoxUsername.text = ""; textBoxPassword.text = ""; break; } currentStage = stageToSet; }
private void UpdateButtons(SSButton[] sButtons, GameTime gameTime, MouseState mouse) { for (int i = 0; i < sButtons.Length; i++) { if (mouse.LeftButton == ButtonState.Pressed && sButtons[i].CollisionRectangle.Contains(mouse.X, mouse.Y)) { sButtons[i].IsClicked = true; sButtons[i].IsCovered = true; elapsedTime = gameTime.TotalGameTime.TotalMilliseconds; selectedStage = sButtons[i].Stage; break; } else { sButtons[i].IsCovered = false; } } if (elapsedTime != 0 && gameTime.TotalGameTime.TotalMilliseconds - elapsedTime >= 100f) { menuStage = selectedStage; foreach (SSButton btn in sButtons) { btn.IsClicked = false; } elapsedTime = 0f; } }
public static void Init(MenuStage menuStage) { switch (menuStage) { case MenuStage.VeryEasy: Opponent = new computerOpponents(computerVersion1); break; case MenuStage.Easy: Opponent = new computerOpponents(computerVersion2); break; case MenuStage.Medium: Opponent = new computerOpponents(computerVersion3); break; case MenuStage.Hard: case MenuStage.VeryHard: Opponent = new computerOpponents(computerVersion4); break; } }
private Texture2D GetRockPaperScissorsImage(int player) { if (player == 0) { return(rocPapSciBtns[0].Texture); } else if (player == 1) { return(rocPapSciBtns[1].Texture); } else if (player == 2) { return(rocPapSciBtns[2].Texture); } else { menuStage = MenuStage.RockPaperScissors; return(null); } }
public Menu() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; graphics.PreferredBackBufferWidth = 1200; graphics.PreferredBackBufferHeight = 675; Window.Title = "Strange Suits"; this.IsMouseVisible = true; quarterScreenW = graphics.PreferredBackBufferWidth / 4.0f; quarterScreenH = graphics.PreferredBackBufferHeight / 4.0f; SSEngine.QuarterSceenWidth = quarterScreenW; SSEngine.QuarterSceenHeight = quarterScreenH; menuStage = MenuStage.SplashScreen; mainButtons = new SSButton[3]; playButtons = new SSButton[7]; rocPapSciBtns = new SSButton[4]; gameRulesBtns = new SSButton[1]; settingsBtns = new SSButton[1]; twoPlayerBtns = new SSButton[3]; }
private void UpdateRockPaperScissors() { int player1Shot = -1; int player2Shot = -1; bool clicked = false; for (int i = 0; i < rocPapSciBtns.Length - 1; i++) { if (rocPapSciBtns[i].IsClicked) { if (SSEngine.Player1.Value) { player1Shot = i; } else { player2Shot = i; } if (playerOne == -1 && playerTwo == -1) { clicked = true; } break; } } if (SSEngine.VersionStage != MenuStage.LAN && SSEngine.VersionStage != MenuStage.Online && clicked) { Random random = new Random(); int prob = random.Next(99); if (prob < 33) { player2Shot = 0; } else if (prob < 66) { player2Shot = 1; } else { player2Shot = 2; } RockPaperScissorsGame(player1Shot, player2Shot); playerOne = player1Shot; playerTwo = player2Shot; } else if (SSEngine.VersionStage == MenuStage.LAN && clicked) { if (SSEngine.Player1.Value) { playerOne = player1Shot; SSEngine.LANClient.Send((byte)playerOne); } else { playerTwo = player2Shot; SSEngine.LANClient.Send((byte)playerTwo); } } else if (SSEngine.VersionStage == MenuStage.Online && clicked) { if (SSEngine.Player1.Value) { playerOne = player1Shot; NetOutgoingMessage msg = SSEngine.Peer.CreateMessage(); msg.Write((byte)playerOne); SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered); } else { playerTwo = player2Shot; NetOutgoingMessage msg = SSEngine.Peer.CreateMessage(); msg.Write((byte)playerTwo); SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered); } } if (SSEngine.VersionStage == MenuStage.LAN || SSEngine.VersionStage == MenuStage.Online) { selectedStage = MenuStage.RockPaperScissorsWait; } }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { // Allows the game to exit if (Keyboard.GetState().IsKeyDown(Keys.Escape)) { this.Exit(); } MouseState mouse = Mouse.GetState(); switch (menuStage) { case MenuStage.SplashScreen: if (gameTime.TotalGameTime.Seconds > 2) { menuStage = MenuStage.MainMenu; } break; case MenuStage.MainMenu: UpdateButtons(mainButtons, gameTime, mouse); break; case MenuStage.Play: UpdateButtons(playButtons, gameTime, mouse); for (int i = 0; i < playButtons.Length - 1; i++) { if (playButtons[i].IsClicked && playButtons[i].Stage != MenuStage.TwoPlayer) { SSEngine.VersionStage = playButtons[i].Stage; selectedStage = MenuStage.RockPaperScissors; SSEngine.Player1 = true; } } break; case MenuStage.TwoPlayer: UpdateButtons(twoPlayerBtns, gameTime, mouse); if (twoPlayerBtns[0].IsClicked) // Online Button. { SSEngine.Player1 = true; SSEngine.VersionStage = twoPlayerBtns[0].Stage; selectedStage = MenuStage.Connect; if (SSEngine.Peer == null) { Client.MainClient(); } } else if (twoPlayerBtns[1].IsClicked) // LAN Button. { SSEngine.Player1 = true; SSEngine.VersionStage = twoPlayerBtns[1].Stage; selectedStage = MenuStage.Connect; if (SSEngine.LANClient == null) { SSEngine.LANClient = new BroadcastClient(); if (SSEngine.LANClient.IsListening) { SSEngine.LANClient.Send((byte)MenuStage.Connect); } } } break; case MenuStage.Connect: if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage()) { Message msg = SSEngine.LANClient.ReceiveMessage(); if (msg.Bytes[0] == (byte)MenuStage.Connect) { SSEngine.Player1 = true; SSEngine.LANClient.Send((byte)MenuStage.Connected); menuStage = MenuStage.Connected; } else if (msg.Bytes[0] == (byte)MenuStage.Connected) { SSEngine.LANClient.Send((byte)MenuStage.Connected); SSEngine.Player1 = false; menuStage = MenuStage.RockPaperScissors; } } else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.IsHost.HasValue) { if (Server.ConForm.cbClient.Checked && Server.ConForm.cbHost.Checked) // Is a host or client. { SSEngine.Player1 = SSEngine.IsHost.Value; menuStage = MenuStage.RockPaperScissors; System.Threading.Thread.Sleep(1000); Server.ConForm.Close(); } } if (SSEngine.VersionStage == MenuStage.LAN && backButton.UpdateButton(mouse, gameTime)) { menuStage = MenuStage.Play; } break; case MenuStage.Connected: if (SSEngine.LANClient.HasMessage()) { Message msg = SSEngine.LANClient.ReceiveMessage(); if (msg.Bytes[0] == (byte)MenuStage.Connected) { menuStage = MenuStage.RockPaperScissors; } } break; case MenuStage.RockPaperScissors: UpdateButtons(rocPapSciBtns, gameTime, mouse); UpdateRockPaperScissors(); break; case MenuStage.RockPaperScissorsWait: if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage()) { Message msg = SSEngine.LANClient.ReceiveMessage(); if (SSEngine.Player1.Value) { playerTwo = msg.Bytes[0]; } else { playerOne = msg.Bytes[0]; } RockPaperScissorsGame(playerOne, playerTwo); menuStage = MenuStage.RockPaperScissorsPlaced; } else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() != null) { NetIncomingMessage msg = SSEngine.Peer.ReadMessage(); if (SSEngine.Player1.Value) { playerTwo = msg.ReadByte(); } else { playerOne = msg.ReadByte(); } RockPaperScissorsGame(playerOne, playerTwo); menuStage = MenuStage.RockPaperScissorsPlaced; } if (backButton.UpdateButton(mouse, gameTime)) { menuStage = MenuStage.Play; } break; case MenuStage.RockPaperScissorsPlaced: if (Keyboard.GetState().IsKeyDown(Keys.Enter)) { if (playerOne != playerTwo) { if (SSEngine.VersionStage == MenuStage.LAN && !SSEngine.LANClient.HasMessage()) { menuStage = MenuStage.WaitToPlay; SSEngine.LANClient.Send((byte)menuStage); } else if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage()) { Message msg = SSEngine.LANClient.ReceiveMessage(); if ((MenuStage)msg.Bytes[0] == MenuStage.WaitToPlay) { SSEngine.LANClient.Send((byte)MenuStage.WaitToPlay); menuStage = MenuStage.InGame; game = new SSGame(this); Components.Add(game); game.Enabled = true; game.Visible = true; } } else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() == null) { menuStage = MenuStage.WaitToPlay; NetOutgoingMessage msg = SSEngine.Peer.CreateMessage(); msg.Write((byte)MenuStage.WaitToPlay); SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered); } else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() != null) { NetIncomingMessage inc = SSEngine.Peer.ReadMessage(); if ((MenuStage)inc.ReadByte() == MenuStage.WaitToPlay) { NetOutgoingMessage msg = SSEngine.Peer.CreateMessage(); msg.Write((byte)MenuStage.WaitToPlay); SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered); menuStage = MenuStage.InGame; game = new SSGame(this); Components.Add(game); game.Enabled = true; game.Visible = true; } } if (SSEngine.VersionStage != MenuStage.LAN && SSEngine.VersionStage != MenuStage.Online) { menuStage = MenuStage.InGame; game = new SSGame(this); Components.Add(game); game.Enabled = true; game.Visible = true; } } else { menuStage = MenuStage.RockPaperScissors; } playerOne = -1; playerTwo = -1; } break; case MenuStage.WaitToPlay: if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage()) { Message msg = SSEngine.LANClient.ReceiveMessage(); if ((MenuStage)msg.Bytes[0] == MenuStage.WaitToPlay) { menuStage = MenuStage.InGame; game = new SSGame(this); Components.Add(game); game.Enabled = true; game.Visible = true; } } else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() != null) { NetIncomingMessage inc = SSEngine.Peer.ReadMessage(); if ((MenuStage)inc.ReadByte() == MenuStage.WaitToPlay) { NetOutgoingMessage msg = SSEngine.Peer.CreateMessage(); msg.Write((byte)MenuStage.WaitToPlay); SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered); menuStage = MenuStage.InGame; game = new SSGame(this); Components.Add(game); game.Enabled = true; game.Visible = true; } } break; case MenuStage.InGame: if (SSEngine.VersionStage == MenuStage.Play) { Components.Remove(game); menuStage = MenuStage.Play; } break; case MenuStage.GameRules: UpdateButtons(gameRulesBtns, gameTime, mouse); break; case MenuStage.Settings: UpdateButtons(settingsBtns, gameTime, mouse); break; } base.Update(gameTime); }
public SSButton(Texture2D sprite, Vector2 position, Texture2D overlay, MenuStage stage) : base(sprite, position, overlay) { this.stage = stage; }