/// <summary> /// Gestiona los clicks del ratón del usuario. /// </summary> /// <returns>Devuelve un objeto tipo Screen según las acciones del usuario.</returns> public Screen Click() { if (BtnBack.isHover(Mouse.GetState().X, Mouse.GetState().Y)) { Game.effects[MainGame.eSounds.click].Play(); return(new StartScreen(Game)); } if (BtnStart.isHover(Mouse.GetState().X, Mouse.GetState().Y) && !ClickJoin) { ClickJoin = true; return(goNext()); } if (TxtInputName.isHover(Mouse.GetState().X, Mouse.GetState().Y)) { changeFocus(TxtInputName); } if (TxtInputRoom.isHover(Mouse.GetState().X, Mouse.GetState().Y)) { changeFocus(TxtInputRoom); } foreach (TextBox input in inputs) { if (input.Focus) { Focused = input; } } return(this); }
/// <summary> /// Dibuja todos los elementos de la pantalla. /// </summary> /// <param name="gameTime">Valor temporal interno.</param> public void Draw(GameTime gameTime) { Game.SpriteBatch.Begin(); BtnBack.draw(Game); Game.SpriteBatch.DrawString( DefaultFont, RoomMessage, new Vector2(ScreenWidth / 2 - DefaultFont.MeasureString(RoomMessage).X / 2, ScreenHeight / 10), Color.Black ); TxtInputRoom.draw(Game); Game.SpriteBatch.DrawString( DefaultFont, NameMessage, new Vector2(ScreenWidth / 2 - DefaultFont.MeasureString(NameMessage).X / 2, ScreenHeight / 2 - DefaultFont.MeasureString(NameMessage).Y), Color.Black ); if (NameError) { Game.SpriteBatch.DrawString(ErrorFont, ErrorNameMsg, new Vector2(ScreenWidth / 2 - ErrorFont.MeasureString(ErrorNameMsg).X / 2, ScreenHeight * 15 / 20), Color.Red); } if (RoomError) { Game.SpriteBatch.DrawString(ErrorFont, ErrorRoomMsg, new Vector2(ScreenWidth / 2 - ErrorFont.MeasureString(ErrorRoomMsg).X / 2, ScreenHeight * 7 / 20), Color.Red); } TxtInputName.draw(Game); BtnStart.draw(Game); Game.SpriteBatch.End(); }