Merge remote-tracking branch 'origin/ui' into ui3
This commit is contained in:
commit
75e40c2c23
13 changed files with 223 additions and 12 deletions
|
@ -11,7 +11,7 @@ with.
|
||||||
<!--
|
<!--
|
||||||
Modify this string to change the font that will be imported.
|
Modify this string to change the font that will be imported.
|
||||||
-->
|
-->
|
||||||
<FontName>Handjet-ExtraLight.ttf</FontName>
|
<FontName>RubikWetPaint-Regular.ttf</FontName>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Size is a float value, measured in points. Modify this value to change
|
Size is a float value, measured in points. Modify this value to change
|
Binary file not shown.
|
@ -13,12 +13,12 @@
|
||||||
|
|
||||||
#---------------------------------- Content ---------------------------------#
|
#---------------------------------- Content ---------------------------------#
|
||||||
|
|
||||||
#begin File.spritefont
|
#begin ButtonFont.spritefont
|
||||||
/importer:FontDescriptionImporter
|
/importer:FontDescriptionImporter
|
||||||
/processor:FontDescriptionProcessor
|
/processor:FontDescriptionProcessor
|
||||||
/processorParam:PremultiplyAlpha=True
|
/processorParam:PremultiplyAlpha=True
|
||||||
/processorParam:TextureFormat=Compressed
|
/processorParam:TextureFormat=Compressed
|
||||||
/build:File.spritefont
|
/build:ButtonFont.spritefont
|
||||||
|
|
||||||
#begin Font_25.spritefont
|
#begin Font_25.spritefont
|
||||||
/importer:FontDescriptionImporter
|
/importer:FontDescriptionImporter
|
||||||
|
@ -27,6 +27,13 @@
|
||||||
/processorParam:TextureFormat=Compressed
|
/processorParam:TextureFormat=Compressed
|
||||||
/build:Font_25.spritefont
|
/build:Font_25.spritefont
|
||||||
|
|
||||||
|
#begin Font_30.spritefont
|
||||||
|
/importer:FontDescriptionImporter
|
||||||
|
/processor:FontDescriptionProcessor
|
||||||
|
/processorParam:PremultiplyAlpha=True
|
||||||
|
/processorParam:TextureFormat=Compressed
|
||||||
|
/build:Font_30.spritefont
|
||||||
|
|
||||||
#begin Font2.spritefont
|
#begin Font2.spritefont
|
||||||
/importer:FontDescriptionImporter
|
/importer:FontDescriptionImporter
|
||||||
/processor:FontDescriptionProcessor
|
/processor:FontDescriptionProcessor
|
||||||
|
|
Binary file not shown.
BIN
DangerousD/Content/RubikWetPaint-Regular.ttf
Normal file
BIN
DangerousD/Content/RubikWetPaint-Regular.ttf
Normal file
Binary file not shown.
117
DangerousD/GameCore/GUI/LobbyGUI.cs
Normal file
117
DangerousD/GameCore/GUI/LobbyGUI.cs
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using MonogameLibrary.UI.Elements;
|
||||||
|
using MonogameLibrary.UI.Enums;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace DangerousD.GameCore.GUI
|
||||||
|
{
|
||||||
|
class LobbyGUI : AbstractGui
|
||||||
|
{
|
||||||
|
public LobbyGUI()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
protected override void CreateUI()
|
||||||
|
{
|
||||||
|
int screenWidth = AppManager.Instance.resolution.X;
|
||||||
|
int screenHeight = AppManager.Instance.resolution.Y;
|
||||||
|
|
||||||
|
// CheckBoxs
|
||||||
|
Elements.Add(new Label(Manager) { rectangle = new Rectangle(screenWidth / 30 * 2, screenHeight / 30 * 5,
|
||||||
|
screenWidth / 30 * 26, screenHeight / 15 * 10) });
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
{
|
||||||
|
Button backButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(screenWidth / 30, screenHeight / 30, 60, 50),
|
||||||
|
text = "<-",
|
||||||
|
scale = 0.3f,
|
||||||
|
fontColor = Color.Black,
|
||||||
|
fontName = "font2"
|
||||||
|
};
|
||||||
|
backButton.LeftButtonPressed += () => {
|
||||||
|
AppManager.Instance.ChangeGameState(GameState.Menu);
|
||||||
|
};
|
||||||
|
|
||||||
|
Button hostButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(screenWidth / 30, screenHeight / 15 * 13, 120, 50),
|
||||||
|
text = "Host",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.Black,
|
||||||
|
fontName = "font2"
|
||||||
|
};
|
||||||
|
hostButton.LeftButtonPressed += () => {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
Button refreshButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(screenWidth / 30 * 6, screenHeight / 15 * 13, 120, 50),
|
||||||
|
text = "Refresh",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.Black,
|
||||||
|
fontName = "font2"
|
||||||
|
};
|
||||||
|
refreshButton.LeftButtonPressed += () => {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
Button joinSelectedButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(screenWidth / 30 * 25, screenHeight / 15 * 13, 120, 50),
|
||||||
|
text = "Join",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.Black,
|
||||||
|
fontName = "font2"
|
||||||
|
};
|
||||||
|
joinSelectedButton.LeftButtonPressed += () => {
|
||||||
|
|
||||||
|
};
|
||||||
|
Button joinByIpButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(screenWidth / 30 * 25, screenHeight / 30, 120, 50),
|
||||||
|
text = "JoinByIp",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.Black,
|
||||||
|
fontName = "font2"
|
||||||
|
};
|
||||||
|
joinByIpButton.LeftButtonPressed += () => {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// SearchBar
|
||||||
|
{
|
||||||
|
TextBox searchBarTextBox = new TextBox(Manager) {
|
||||||
|
rectangle = new Rectangle(screenWidth / 30 * 14, screenHeight / 30,
|
||||||
|
screenWidth / 30 * 10, screenHeight / 30 * 3),
|
||||||
|
text = "ip",
|
||||||
|
scale = 0.16f,
|
||||||
|
fontColor = Color.Gray,
|
||||||
|
fontName = "font2",
|
||||||
|
textAligment = TextAligment.Left
|
||||||
|
|
||||||
|
};
|
||||||
|
searchBarTextBox.TextChanged += input => {
|
||||||
|
if (searchBarTextBox.fontColor == Color.Gray)
|
||||||
|
{
|
||||||
|
searchBarTextBox.text = ""; searchBarTextBox.fontColor = Color.Black;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
searchBarTextBox.StopChanging += input => {
|
||||||
|
if (input.Length == 0)
|
||||||
|
{
|
||||||
|
searchBarTextBox.fontColor = Color.Gray;
|
||||||
|
searchBarTextBox.text = "ip";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,6 +12,12 @@ namespace DangerousD.GameCore.GUI
|
||||||
{
|
{
|
||||||
class LoginGUI : AbstractGui
|
class LoginGUI : AbstractGui
|
||||||
{
|
{
|
||||||
|
private string username;
|
||||||
|
private string password;
|
||||||
|
|
||||||
|
public string Username { get => username; }
|
||||||
|
public string Password { get => password; }
|
||||||
|
|
||||||
protected override void CreateUI()
|
protected override void CreateUI()
|
||||||
{
|
{
|
||||||
int screenWidth = AppManager.Instance.resolution.X;
|
int screenWidth = AppManager.Instance.resolution.X;
|
||||||
|
@ -34,7 +40,7 @@ namespace DangerousD.GameCore.GUI
|
||||||
text = "NickName",
|
text = "NickName",
|
||||||
scale = 0.16f,
|
scale = 0.16f,
|
||||||
fontColor = Color.Gray,
|
fontColor = Color.Gray,
|
||||||
fontName = "font2",
|
fontName = "Font2",
|
||||||
textAligment = TextAligment.Left
|
textAligment = TextAligment.Left
|
||||||
};
|
};
|
||||||
loginTextBox.TextChanged += input => {
|
loginTextBox.TextChanged += input => {
|
||||||
|
@ -43,6 +49,13 @@ namespace DangerousD.GameCore.GUI
|
||||||
loginTextBox.text = ""; loginTextBox.fontColor = Color.Black;
|
loginTextBox.text = ""; loginTextBox.fontColor = Color.Black;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
loginTextBox.StopChanging += input => {
|
||||||
|
if (input.Length == 0)
|
||||||
|
{
|
||||||
|
loginTextBox.text = "NickName";
|
||||||
|
loginTextBox.fontColor = Color.Gray;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
TextBox passwordTextBox = new TextBox(Manager)
|
TextBox passwordTextBox = new TextBox(Manager)
|
||||||
{
|
{
|
||||||
|
@ -59,6 +72,13 @@ namespace DangerousD.GameCore.GUI
|
||||||
passwordTextBox.text = ""; passwordTextBox.fontColor = Color.Black;
|
passwordTextBox.text = ""; passwordTextBox.fontColor = Color.Black;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
passwordTextBox.StopChanging += input => {
|
||||||
|
if (input.Length == 0)
|
||||||
|
{
|
||||||
|
passwordTextBox.text = "Password";
|
||||||
|
passwordTextBox.fontColor = Color.Gray;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Кнопки
|
// Кнопки
|
||||||
|
@ -71,7 +91,10 @@ namespace DangerousD.GameCore.GUI
|
||||||
fontName = "font2"
|
fontName = "font2"
|
||||||
};
|
};
|
||||||
logButton.LeftButtonPressed += () => {
|
logButton.LeftButtonPressed += () => {
|
||||||
|
if (CheckUser())
|
||||||
|
{
|
||||||
AppManager.Instance.ChangeGameState(GameState.Lobby);
|
AppManager.Instance.ChangeGameState(GameState.Lobby);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Button regButton = new Button(Manager)
|
Button regButton = new Button(Manager)
|
||||||
|
@ -102,5 +125,9 @@ namespace DangerousD.GameCore.GUI
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
private bool CheckUser()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,27 +10,30 @@ internal class MenuGUI : AbstractGui
|
||||||
{
|
{
|
||||||
int wigth = AppManager.Instance.Window.ClientBounds.Width;
|
int wigth = AppManager.Instance.Window.ClientBounds.Width;
|
||||||
int height = AppManager.Instance.Window.ClientBounds.Height;
|
int height = AppManager.Instance.Window.ClientBounds.Height;
|
||||||
var butSingle = new Button(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 130, 300, 50), text = "Singleplayer", fontName = "File" };
|
|
||||||
|
Elements.Add(new Label(Manager) { rectangle = new Rectangle(10, 10, 50, 50), text = "Dangerous" });
|
||||||
|
var butSingle = new ButtonText(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 130, 300, 50), text = "Singleplayer", fontName = "ButtonFont" };
|
||||||
Elements.Add(butSingle);
|
Elements.Add(butSingle);
|
||||||
butSingle.LeftButtonPressed += () =>
|
butSingle.LeftButtonPressed += () =>
|
||||||
{
|
{
|
||||||
AppManager.Instance.ChangeGameState(GameState.Game);
|
AppManager.Instance.ChangeGameState(GameState.Game);
|
||||||
};
|
};
|
||||||
|
|
||||||
var butMulti = new Button(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 190, 300, 50), text = "Multiplayer", fontName = "File" };
|
var butMulti = new ButtonText(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 190, 300, 50), text = "Multiplayer", fontName = "ButtonFont" };
|
||||||
|
|
||||||
Elements.Add(butMulti);
|
Elements.Add(butMulti);
|
||||||
butMulti.LeftButtonPressed += () =>
|
butMulti.LeftButtonPressed += () =>
|
||||||
{
|
{
|
||||||
AppManager.Instance.ChangeGameState(GameState.Login);
|
AppManager.Instance.ChangeGameState(GameState.Login);
|
||||||
};
|
};
|
||||||
var butOption = new Button(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 250, 300, 50), text = "Option", fontName = "File" };
|
var butOption = new ButtonText(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 250, 300, 50), text = "Option", fontName = "ButtonFont" };
|
||||||
Elements.Add(butOption);
|
Elements.Add(butOption);
|
||||||
butOption.LeftButtonPressed += () =>
|
butOption.LeftButtonPressed += () =>
|
||||||
{
|
{
|
||||||
// открытие настроек
|
// открытие настроек
|
||||||
AppManager.Instance.ChangeGameState(GameState.Options);
|
AppManager.Instance.ChangeGameState(GameState.Options);
|
||||||
};
|
};
|
||||||
var butExit = new Button(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 310, 300, 50), text = "Exit", fontName = "File" };
|
var butExit = new ButtonText(Manager) { rectangle = new Rectangle((wigth - 300) / 2, 310, 300, 50), text = "Exit", fontName = "ButtonFont" };
|
||||||
Elements.Add(butExit);
|
Elements.Add(butExit);
|
||||||
butExit.LeftButtonPressed += () =>
|
butExit.LeftButtonPressed += () =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace DangerousD.GameCore.GUI
|
||||||
lblOptions.fontName = "font2";
|
lblOptions.fontName = "font2";
|
||||||
lblOptions.text = "Options";
|
lblOptions.text = "Options";
|
||||||
lblOptions.rectangle = new Rectangle(300, 20, 210, 50);
|
lblOptions.rectangle = new Rectangle(300, 20, 210, 50);
|
||||||
|
lblOptions.mainColor = Color.Transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -35,10 +35,15 @@ namespace DangerousD.GameCore
|
||||||
|
|
||||||
resolution = new Point(_graphics.PreferredBackBufferWidth, _graphics.PreferredBackBufferHeight);
|
resolution = new Point(_graphics.PreferredBackBufferWidth, _graphics.PreferredBackBufferHeight);
|
||||||
GameManager = new GameManager();
|
GameManager = new GameManager();
|
||||||
|
|
||||||
gameState = GameState.Menu;
|
gameState = GameState.Menu;
|
||||||
MenuGUI = new MenuGUI();
|
MenuGUI = new MenuGUI();
|
||||||
LoginGUI = new LoginGUI();
|
LoginGUI = new LoginGUI();
|
||||||
|
|
||||||
OptionsGUI = new OptionsGUI();
|
OptionsGUI = new OptionsGUI();
|
||||||
|
|
||||||
|
LobbyGUI = new LobbyGUI();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Initialize()
|
protected override void Initialize()
|
||||||
|
@ -46,7 +51,10 @@ namespace DangerousD.GameCore
|
||||||
AnimationBuilder.LoadAnimations();
|
AnimationBuilder.LoadAnimations();
|
||||||
MenuGUI.Initialize(GraphicsDevice);
|
MenuGUI.Initialize(GraphicsDevice);
|
||||||
LoginGUI.Initialize(GraphicsDevice);
|
LoginGUI.Initialize(GraphicsDevice);
|
||||||
|
|
||||||
OptionsGUI.Initialize(GraphicsDevice);
|
OptionsGUI.Initialize(GraphicsDevice);
|
||||||
|
|
||||||
|
LobbyGUI.Initialize(GraphicsDevice);
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +63,11 @@ namespace DangerousD.GameCore
|
||||||
_spriteBatch = new SpriteBatch(GraphicsDevice);
|
_spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||||
MenuGUI.LoadContent();
|
MenuGUI.LoadContent();
|
||||||
LoginGUI.LoadContent();
|
LoginGUI.LoadContent();
|
||||||
|
|
||||||
OptionsGUI.LoadContent();
|
OptionsGUI.LoadContent();
|
||||||
|
|
||||||
|
LobbyGUI.LoadContent();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update(GameTime gameTime)
|
protected override void Update(GameTime gameTime)
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace MonogameLibrary.UI.Elements
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool InteractUpdate(MouseState mouseState, MouseState prevmouseState)
|
public virtual bool InteractUpdate(MouseState mouseState, MouseState prevmouseState)
|
||||||
{
|
{
|
||||||
if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero)))
|
if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero)))
|
||||||
{
|
{
|
||||||
|
@ -61,11 +61,19 @@ namespace MonogameLibrary.UI.Elements
|
||||||
public override void Draw(SpriteBatch _spriteBatch)
|
public override void Draw(SpriteBatch _spriteBatch)
|
||||||
{
|
{
|
||||||
if (hoverState == HoverState.None)
|
if (hoverState == HoverState.None)
|
||||||
|
{
|
||||||
_spriteBatch.Draw(texture, rectangle, Color.White);
|
_spriteBatch.Draw(texture, rectangle, Color.White);
|
||||||
|
}
|
||||||
else if (hoverState == HoverState.Hovering)
|
else if (hoverState == HoverState.Hovering)
|
||||||
|
{
|
||||||
_spriteBatch.Draw(texture, rectangle, new Color(211, 211, 211));
|
_spriteBatch.Draw(texture, rectangle, new Color(211, 211, 211));
|
||||||
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
|
{
|
||||||
_spriteBatch.Draw(texture, rectangle, new Color(112, 128, 144));
|
_spriteBatch.Draw(texture, rectangle, new Color(112, 128, 144));
|
||||||
|
}
|
||||||
|
|
||||||
DrawText(_spriteBatch);
|
DrawText(_spriteBatch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
37
MonogameLibrary/UI/Elements/ButtonText.cs
Normal file
37
MonogameLibrary/UI/Elements/ButtonText.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using Microsoft.Xna.Framework.Input;
|
||||||
|
using MonogameLibrary.UI.Base;
|
||||||
|
using MonogameLibrary.UI.Enums;
|
||||||
|
using MonogameLibrary.UI.Interfaces;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using static MonogameLibrary.UI.Elements.Button;
|
||||||
|
|
||||||
|
namespace MonogameLibrary.UI.Elements
|
||||||
|
{
|
||||||
|
public class ButtonText : Button
|
||||||
|
{
|
||||||
|
public ButtonText(UIManager manager, int layerIndex = 0) : base(manager, layerIndex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void Draw(SpriteBatch _spriteBatch)
|
||||||
|
{
|
||||||
|
if (hoverState == HoverState.None)
|
||||||
|
{
|
||||||
|
fontColor = Color.White;
|
||||||
|
}
|
||||||
|
else if (hoverState == HoverState.Hovering)
|
||||||
|
{
|
||||||
|
fontColor = new Color(211, 211, 211);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fontColor = new Color(112, 128, 144);
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawText(_spriteBatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
0
gitignore
Normal file
0
gitignore
Normal file
Loading…
Add table
Reference in a new issue