Ajout des elements graphiques basiques
Nettoyage du ignore
|
@ -209,4 +209,4 @@ FakesAssemblies/
|
||||||
# LightSwitch generated files
|
# LightSwitch generated files
|
||||||
GeneratedArtifacts/
|
GeneratedArtifacts/
|
||||||
_Pvt_Extensions/
|
_Pvt_Extensions/
|
||||||
ModelManifest.xml
|
ModelManifest.xml
|
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file contains an xml description of a font, and will be read by the XNA
|
||||||
|
Framework Content Pipeline. Follow the comments to customize the appearance
|
||||||
|
of the font in your game, and to change the characters which are available to draw
|
||||||
|
with.
|
||||||
|
-->
|
||||||
|
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
|
||||||
|
<Asset Type="Graphics:FontDescription">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Modify this string to change the font that will be imported.
|
||||||
|
-->
|
||||||
|
<FontName>editundo</FontName>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Size is a float value, measured in points. Modify this value to change
|
||||||
|
the size of the font.
|
||||||
|
-->
|
||||||
|
<Size>16</Size>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Spacing is a float value, measured in pixels. Modify this value to change
|
||||||
|
the amount of spacing in between characters.
|
||||||
|
-->
|
||||||
|
<Spacing>0</Spacing>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
UseKerning controls the layout of the font. If this value is true, kerning information
|
||||||
|
will be used when placing characters.
|
||||||
|
-->
|
||||||
|
<UseKerning>true</UseKerning>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
|
||||||
|
and "Bold, Italic", and are case sensitive.
|
||||||
|
-->
|
||||||
|
<Style>Regular</Style>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you uncomment this line, the default character will be substituted if you draw
|
||||||
|
or measure text that contains characters which were not included in the font.
|
||||||
|
-->
|
||||||
|
<!-- <DefaultCharacter>*</DefaultCharacter> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
CharacterRegions control what letters are available in the font. Every
|
||||||
|
character from Start to End will be built and made available for drawing. The
|
||||||
|
default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
|
||||||
|
character set. The characters are ordered according to the Unicode standard.
|
||||||
|
See the documentation for more information.
|
||||||
|
-->
|
||||||
|
<CharacterRegions>
|
||||||
|
<CharacterRegion>
|
||||||
|
<Start> </Start>
|
||||||
|
<End>~</End>
|
||||||
|
</CharacterRegion>
|
||||||
|
</CharacterRegions>
|
||||||
|
</Asset>
|
||||||
|
</XnaContent>
|
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file contains an xml description of a font, and will be read by the XNA
|
||||||
|
Framework Content Pipeline. Follow the comments to customize the appearance
|
||||||
|
of the font in your game, and to change the characters which are available to draw
|
||||||
|
with.
|
||||||
|
-->
|
||||||
|
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
|
||||||
|
<Asset Type="Graphics:FontDescription">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Modify this string to change the font that will be imported.
|
||||||
|
-->
|
||||||
|
<FontName>Tahoma</FontName>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Size is a float value, measured in points. Modify this value to change
|
||||||
|
the size of the font.
|
||||||
|
-->
|
||||||
|
<Size>8</Size>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Spacing is a float value, measured in pixels. Modify this value to change
|
||||||
|
the amount of spacing in between characters.
|
||||||
|
-->
|
||||||
|
<Spacing>0</Spacing>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
UseKerning controls the layout of the font. If this value is true, kerning information
|
||||||
|
will be used when placing characters.
|
||||||
|
-->
|
||||||
|
<UseKerning>true</UseKerning>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
|
||||||
|
and "Bold, Italic", and are case sensitive.
|
||||||
|
-->
|
||||||
|
<Style>Regular</Style>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you uncomment this line, the default character will be substituted if you draw
|
||||||
|
or measure text that contains characters which were not included in the font.
|
||||||
|
-->
|
||||||
|
<!-- <DefaultCharacter>*</DefaultCharacter> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
CharacterRegions control what letters are available in the font. Every
|
||||||
|
character from Start to End will be built and made available for drawing. The
|
||||||
|
default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
|
||||||
|
character set. The characters are ordered according to the Unicode standard.
|
||||||
|
See the documentation for more information.
|
||||||
|
-->
|
||||||
|
<CharacterRegions>
|
||||||
|
<CharacterRegion>
|
||||||
|
<Start> </Start>
|
||||||
|
<End>~</End>
|
||||||
|
</CharacterRegion>
|
||||||
|
</CharacterRegions>
|
||||||
|
</Asset>
|
||||||
|
</XnaContent>
|
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file contains an xml description of a font, and will be read by the XNA
|
||||||
|
Framework Content Pipeline. Follow the comments to customize the appearance
|
||||||
|
of the font in your game, and to change the characters which are available to draw
|
||||||
|
with.
|
||||||
|
-->
|
||||||
|
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
|
||||||
|
<Asset Type="Graphics:FontDescription">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Modify this string to change the font that will be imported.
|
||||||
|
-->
|
||||||
|
<FontName>MV Boli</FontName>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Size is a float value, measured in points. Modify this value to change
|
||||||
|
the size of the font.
|
||||||
|
-->
|
||||||
|
<Size>50</Size>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Spacing is a float value, measured in pixels. Modify this value to change
|
||||||
|
the amount of spacing in between characters.
|
||||||
|
-->
|
||||||
|
<Spacing>0</Spacing>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
UseKerning controls the layout of the font. If this value is true, kerning information
|
||||||
|
will be used when placing characters.
|
||||||
|
-->
|
||||||
|
<UseKerning>true</UseKerning>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
|
||||||
|
and "Bold, Italic", and are case sensitive.
|
||||||
|
-->
|
||||||
|
<Style>Regular</Style>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you uncomment this line, the default character will be substituted if you draw
|
||||||
|
or measure text that contains characters which were not included in the font.
|
||||||
|
-->
|
||||||
|
<!-- <DefaultCharacter>*</DefaultCharacter> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
CharacterRegions control what letters are available in the font. Every
|
||||||
|
character from Start to End will be built and made available for drawing. The
|
||||||
|
default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
|
||||||
|
character set. The characters are ordered according to the Unicode standard.
|
||||||
|
See the documentation for more information.
|
||||||
|
-->
|
||||||
|
<CharacterRegions>
|
||||||
|
<CharacterRegion>
|
||||||
|
<Start> </Start>
|
||||||
|
<End>~</End>
|
||||||
|
</CharacterRegion>
|
||||||
|
</CharacterRegions>
|
||||||
|
</Asset>
|
||||||
|
</XnaContent>
|
After Width: | Height: | Size: 167 B |
After Width: | Height: | Size: 306 B |
After Width: | Height: | Size: 297 B |
After Width: | Height: | Size: 167 B |
After Width: | Height: | Size: 168 B |
After Width: | Height: | Size: 173 B |
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 305 B |
After Width: | Height: | Size: 300 B |
|
@ -0,0 +1,112 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
class Button : Element
|
||||||
|
{
|
||||||
|
protected string _text;
|
||||||
|
protected SpriteFont _font;
|
||||||
|
protected Color _backColor, _backColorHover, _backColorFocus, _textColor, _textColorHover, _textColorFocus;
|
||||||
|
protected event EventHandler _click;
|
||||||
|
Texture2D _backSprite;
|
||||||
|
|
||||||
|
public Button() { }
|
||||||
|
|
||||||
|
public Button(Rectangle pos, Color backColor, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColor;
|
||||||
|
_backColorFocus = backColor;
|
||||||
|
_backSprite = Game1.nullSprite;
|
||||||
|
_click = click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button(Rectangle pos, Color backColor, Color backColorHover, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorHover;
|
||||||
|
_backSprite = Game1.nullSprite;
|
||||||
|
_click = click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button(Rectangle pos, Color backColor, Color backColorHover, Color backColorFocus, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorFocus;
|
||||||
|
_backSprite = Game1.nullSprite;
|
||||||
|
_click = click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button(Rectangle pos, Color backColor, string text, SpriteFont font, Color textColor, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_font = font;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColor;
|
||||||
|
_backColorFocus = backColor;
|
||||||
|
_textColor = textColor;
|
||||||
|
_textColorHover = textColor;
|
||||||
|
_textColorFocus = textColor;
|
||||||
|
_text = text;
|
||||||
|
_backSprite = Game1.nullSprite;
|
||||||
|
_click = click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button(Rectangle pos, Color backColor, Color backColorHover, string text, SpriteFont font, Color textColor, Color textColorHover, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_font = font;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorHover;
|
||||||
|
_textColor = textColor;
|
||||||
|
_textColorHover = textColorHover;
|
||||||
|
_textColorFocus = textColorHover;
|
||||||
|
_text = text;
|
||||||
|
_backSprite = Game1.nullSprite;
|
||||||
|
_click = click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Button(Rectangle pos, Color backColor, Color backColorHover, Color backColorFocus, string text, SpriteFont font, Color textColor, Color textColorHover, Color textColorFocus, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorFocus;
|
||||||
|
_text = text;
|
||||||
|
_font = font;
|
||||||
|
_textColor = textColor;
|
||||||
|
_textColorHover = textColorHover;
|
||||||
|
_textColorFocus = textColorFocus;
|
||||||
|
_backSprite = Game1.nullSprite;
|
||||||
|
_click = click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_click != null)
|
||||||
|
{
|
||||||
|
_click.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
Color backColor = _isFocus ? _backColorFocus : (_isHover ? _backColorHover : _backColor);
|
||||||
|
spriteBatch.Draw(_backSprite, _pos, backColor);
|
||||||
|
if (_text != null)
|
||||||
|
{
|
||||||
|
Color textColor = _isFocus ? _textColorFocus : (_isHover ? _textColorHover : _textColor);
|
||||||
|
spriteBatch.DrawString(_font, _text, new Vector2(_pos.X + (_pos.Width - _font.MeasureString(_text).X) / 2, _pos.Y + (_pos.Height - _font.MeasureString(_text).Y) / 2), textColor);
|
||||||
|
}
|
||||||
|
if (_isFocus) { _isFocus = false; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using Microsoft.Xna.Framework.Input;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
class Element
|
||||||
|
{
|
||||||
|
protected Rectangle _pos;
|
||||||
|
protected bool _isHover;
|
||||||
|
protected bool _isFocus;
|
||||||
|
|
||||||
|
public bool Contain(int x, int y)
|
||||||
|
{
|
||||||
|
return _pos.Contains(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(int x, int y, Mouse mouse, EventArgs e)
|
||||||
|
{
|
||||||
|
if (mouse.leftPress)
|
||||||
|
{
|
||||||
|
if (Contain(x, y))
|
||||||
|
{
|
||||||
|
_isFocus = true;
|
||||||
|
Click(this, e);
|
||||||
|
}
|
||||||
|
else { _isFocus = false; }
|
||||||
|
}
|
||||||
|
else { _isHover = Contain(x, y); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
class Label : Element
|
||||||
|
{
|
||||||
|
protected string _text;
|
||||||
|
protected SpriteFont _font;
|
||||||
|
protected Color _color, _colorHover, _colorFocus;
|
||||||
|
protected Vector _vector;
|
||||||
|
protected bool _center;
|
||||||
|
|
||||||
|
public Label() { }
|
||||||
|
|
||||||
|
public Label(Vector vector, string text, SpriteFont font, Color color, bool center = false)
|
||||||
|
{
|
||||||
|
_vector = vector;
|
||||||
|
_text = text;
|
||||||
|
_font = font;
|
||||||
|
_color = color;
|
||||||
|
_colorHover = color;
|
||||||
|
_colorFocus = color;
|
||||||
|
_center = center;
|
||||||
|
OnTextChange(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Label(Vector vector, string text, SpriteFont font, Color color, Color colorHover, bool center = false)
|
||||||
|
{
|
||||||
|
_vector = vector;
|
||||||
|
_text = text;
|
||||||
|
_font = font;
|
||||||
|
_color = color;
|
||||||
|
_colorHover = colorHover;
|
||||||
|
_colorFocus = colorHover;
|
||||||
|
_center = center;
|
||||||
|
OnTextChange(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Label(Vector vector, string text, SpriteFont font, Color color, Color colorHover, Color colorFocus, bool center = false)
|
||||||
|
{
|
||||||
|
_vector = vector;
|
||||||
|
_text = text;
|
||||||
|
_font = font;
|
||||||
|
_color = color;
|
||||||
|
_colorHover = colorHover;
|
||||||
|
_colorFocus = colorFocus;
|
||||||
|
_center = center;
|
||||||
|
OnTextChange(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void OnTextChange(string text)
|
||||||
|
{
|
||||||
|
if (_center)
|
||||||
|
{
|
||||||
|
_pos = new Rectangle(_vector.X - (int)_font.MeasureString(text).X / 2, _vector.Y - (int)_font.MeasureString(text).Y / 2, (int)_font.MeasureString(text).X, (int)_font.MeasureString(text).Y);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_pos = new Rectangle(_vector.X, _vector.Y, (int)_font.MeasureString(text).X, (int)_font.MeasureString(text).Y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
Color color = _isFocus ? _colorFocus : (_isHover ? _colorHover : _color);
|
||||||
|
spriteBatch.DrawString(_font, _text, new Vector2(_pos.X, _pos.Y), color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
public struct Mouse
|
||||||
|
{
|
||||||
|
public bool leftPress;
|
||||||
|
public bool leftRelease;
|
||||||
|
public bool rightPress;
|
||||||
|
public bool rightRelease;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
class TexturedButton : Button
|
||||||
|
{
|
||||||
|
buttonSprites _backSprites;
|
||||||
|
|
||||||
|
public TexturedButton(Rectangle pos, buttonSprites backSprites, Color backColor, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backSprites = backSprites;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColor;
|
||||||
|
_backColorFocus = backColor;
|
||||||
|
_click += click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TexturedButton(Rectangle pos, buttonSprites backSprites, Color backColor, Color backColorHover, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backSprites = backSprites;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorHover;
|
||||||
|
_click += click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TexturedButton(Rectangle pos, buttonSprites backSprites, Color backColor, Color backColorHover, Color backColorFocus, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backSprites = backSprites;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorFocus;
|
||||||
|
_click += click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TexturedButton(Rectangle pos, buttonSprites backSprites, Color backColor, string text, SpriteFont font, Color textColor, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_font = font;
|
||||||
|
_backSprites = backSprites;
|
||||||
|
_backColor = backColor;
|
||||||
|
_textColor = textColor;
|
||||||
|
_textColorHover = textColor;
|
||||||
|
_textColorFocus = textColor;
|
||||||
|
_text = text;
|
||||||
|
_click += click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TexturedButton(Rectangle pos, buttonSprites backSprites, Color backColor, Color backColorHover, string text, SpriteFont font, Color textColor, Color textColorHover, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_font = font;
|
||||||
|
_backSprites = backSprites;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorHover;
|
||||||
|
_textColor = textColor;
|
||||||
|
_textColorHover = textColorHover;
|
||||||
|
_textColorFocus = textColorHover;
|
||||||
|
_text = text;
|
||||||
|
_click += click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TexturedButton(Rectangle pos, buttonSprites backSprites, Color backColor, Color backColorHover, Color backColorFocus, string text, SpriteFont font, Color textColor, Color textColorHover, Color textColorFocus, EventHandler click = null)
|
||||||
|
{
|
||||||
|
_pos = pos;
|
||||||
|
_backSprites = backSprites;
|
||||||
|
_backColor = backColor;
|
||||||
|
_backColorHover = backColorHover;
|
||||||
|
_backColorFocus = backColorFocus;
|
||||||
|
_text = text;
|
||||||
|
_font = font;
|
||||||
|
_textColor = textColor;
|
||||||
|
_textColorHover = textColorHover;
|
||||||
|
_textColorFocus = textColorFocus;
|
||||||
|
_click += click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
Color backColor = _isFocus ? _backColorFocus : (_isHover ? _backColorHover : _backColor);
|
||||||
|
|
||||||
|
int leftWidth = _backSprites.topLeft.Width;
|
||||||
|
int rightWidth = _backSprites.topRight.Width;
|
||||||
|
int centerWidth = _pos.Width - leftWidth - rightWidth;
|
||||||
|
|
||||||
|
int topHeight = _backSprites.topLeft.Height;
|
||||||
|
int bottomHeight = _backSprites.bottomLeft.Height;
|
||||||
|
int centerHeight = _pos.Height - topHeight - bottomHeight;
|
||||||
|
|
||||||
|
spriteBatch.Draw(_backSprites.topLeft, new Rectangle(_pos.X, _pos.Y, leftWidth, topHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.topCenter, new Rectangle(_pos.X + leftWidth, _pos.Y, centerWidth, topHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.topRight, new Rectangle(_pos.X + _pos.Width - rightWidth, _pos.Y, rightWidth, topHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.centerLeft, new Rectangle(_pos.X, _pos.Y + topHeight, leftWidth, centerHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.centerCenter, new Rectangle(_pos.X + leftWidth, _pos.Y + topHeight, centerWidth, centerHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.centerRight, new Rectangle(_pos.X + _pos.Width - rightWidth, _pos.Y + topHeight, rightWidth, centerHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.bottomLeft, new Rectangle(_pos.X, _pos.Y + _pos.Height - bottomHeight, leftWidth, bottomHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.bottomCenter, new Rectangle(_pos.X + leftWidth, _pos.Y + _pos.Height - bottomHeight, centerWidth, bottomHeight), backColor);
|
||||||
|
spriteBatch.Draw(_backSprites.bottomRight, new Rectangle(_pos.X + _pos.Width - rightWidth, _pos.Y + _pos.Height - bottomHeight, rightWidth, bottomHeight), backColor);
|
||||||
|
if (_text != null)
|
||||||
|
{
|
||||||
|
Color textColor = _isFocus ? _textColorFocus : (_isHover ? _textColorHover : _textColor);
|
||||||
|
spriteBatch.DrawString(_font, _text, new Vector2(_pos.X + (_pos.Width - _font.MeasureString(_text).X) / 2, _pos.Y + (_pos.Height - _font.MeasureString(_text).Y) / 2), textColor);
|
||||||
|
}
|
||||||
|
if (_isFocus) { _isFocus = false; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
public class Vector
|
||||||
|
{
|
||||||
|
public int X;
|
||||||
|
public int Y;
|
||||||
|
|
||||||
|
public Vector(int x, int y)
|
||||||
|
{
|
||||||
|
X = x;
|
||||||
|
Y = y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI.GUI
|
||||||
|
{
|
||||||
|
public struct buttonSprites
|
||||||
|
{
|
||||||
|
public Texture2D topLeft;
|
||||||
|
public Texture2D topCenter;
|
||||||
|
public Texture2D topRight;
|
||||||
|
public Texture2D centerLeft;
|
||||||
|
public Texture2D centerCenter;
|
||||||
|
public Texture2D centerRight;
|
||||||
|
public Texture2D bottomLeft;
|
||||||
|
public Texture2D bottomCenter;
|
||||||
|
public Texture2D bottomRight;
|
||||||
|
}
|
||||||
|
}
|
|
@ -39,8 +39,16 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Game1.cs" />
|
<Compile Include="Game1.cs" />
|
||||||
|
<Compile Include="GUI\Button.cs" />
|
||||||
|
<Compile Include="GUI\buttonSprites.cs" />
|
||||||
|
<Compile Include="GUI\Label.cs" />
|
||||||
|
<Compile Include="GUI\Mouse.cs" />
|
||||||
|
<Compile Include="GUI\TexturedButton.cs" />
|
||||||
|
<Compile Include="GUI\Element.cs" />
|
||||||
|
<Compile Include="GUI\Vector.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Utilities.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="OpenTK">
|
<Reference Include="OpenTK">
|
||||||
|
@ -57,6 +65,33 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Icon.ico" />
|
<EmbeddedResource Include="Icon.ico" />
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\topLeft.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\topCenter.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\topRight.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\centerLeft.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\centerCenter.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\centerRight.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\bottomLeft.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\bottomCenter.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\Textures\Hub\Buttons\0\bottomRight.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="Content\Textures\Hub\pointer0.png">
|
<Content Include="Content\Textures\Hub\pointer0.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -67,6 +102,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<MonoGameContentReference Include="Content\Content.mgcb" />
|
<MonoGameContentReference Include="Content\Content.mgcb" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|
|
@ -4,7 +4,9 @@ using Microsoft.Xna.Framework.Content;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using Microsoft.Xna.Framework.Input;
|
using Microsoft.Xna.Framework.Input;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
namespace Galactic_Colors_Control_GUI
|
namespace Galactic_Colors_Control_GUI
|
||||||
|
@ -24,8 +26,11 @@ namespace Galactic_Colors_Control_GUI
|
||||||
private SpriteFont basicFont;
|
private SpriteFont basicFont;
|
||||||
private SpriteFont titleFont;
|
private SpriteFont titleFont;
|
||||||
|
|
||||||
private Texture2D nullSprite;
|
internal static Texture2D nullSprite;
|
||||||
private Texture2D[] pointerSprites = new Texture2D[1];
|
private Texture2D[] pointerSprites = new Texture2D[1];
|
||||||
|
private GUI.buttonSprites[] buttonsSprites = new GUI.buttonSprites[1];
|
||||||
|
|
||||||
|
private List<GUI.Element> elements = new List<GUI.Element>();
|
||||||
|
|
||||||
Version version;
|
Version version;
|
||||||
|
|
||||||
|
@ -33,18 +38,22 @@ namespace Galactic_Colors_Control_GUI
|
||||||
private MouseState newState;
|
private MouseState newState;
|
||||||
private int mouseX;
|
private int mouseX;
|
||||||
private int mouseY;
|
private int mouseY;
|
||||||
private bool haveOverButton = false;
|
private Keys[] oldKeys;
|
||||||
|
private Keys[] newKeys;
|
||||||
|
|
||||||
private string skinName;
|
private string skinName;
|
||||||
|
|
||||||
private enum GameStatus { Home, Options, Game, Pause, End, Thanks }
|
private enum GameStatus { Home, Options, Game, Pause, End, Thanks }
|
||||||
private GameStatus gameStatus;
|
private GameStatus gameStatus;
|
||||||
|
|
||||||
|
private int ScreenWidth = 1080;
|
||||||
|
private int ScreenHeight = 720;
|
||||||
|
|
||||||
public Game1()
|
public Game1()
|
||||||
{
|
{
|
||||||
graphics = new GraphicsDeviceManager(this);
|
graphics = new GraphicsDeviceManager(this);
|
||||||
graphics.PreferredBackBufferWidth = 1280;
|
graphics.PreferredBackBufferWidth = ScreenWidth;
|
||||||
graphics.PreferredBackBufferHeight = 720;
|
graphics.PreferredBackBufferHeight = ScreenHeight;
|
||||||
graphics.IsFullScreen = false;
|
graphics.IsFullScreen = false;
|
||||||
graphics.ApplyChanges();
|
graphics.ApplyChanges();
|
||||||
Content.RootDirectory = "Content";
|
Content.RootDirectory = "Content";
|
||||||
|
@ -62,10 +71,22 @@ namespace Galactic_Colors_Control_GUI
|
||||||
version = Assembly.GetEntryAssembly().GetName().Version;
|
version = Assembly.GetEntryAssembly().GetName().Version;
|
||||||
nullSprite = new Texture2D(GraphicsDevice, 1, 1);
|
nullSprite = new Texture2D(GraphicsDevice, 1, 1);
|
||||||
nullSprite.SetData(new Color[1 * 1] { Color.White });
|
nullSprite.SetData(new Color[1 * 1] { Color.White });
|
||||||
|
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO : remove this
|
||||||
|
private void AddRandom(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Random rand = new Random();
|
||||||
|
elements.Add(new GUI.Button(new Rectangle(rand.Next(0, ScreenHeight - 20), rand.Next(0, ScreenWidth - 20), 20, 20), Color.Black, Color.DarkSlateGray, Color.SlateGray, RemoveThis));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO : remove this
|
||||||
|
private void RemoveThis(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
elements.Remove(sender as GUI.Element);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// LoadContent will be called once per game and is the place to load
|
/// LoadContent will be called once per game and is the place to load
|
||||||
/// all of your content.
|
/// all of your content.
|
||||||
|
@ -75,34 +96,73 @@ namespace Galactic_Colors_Control_GUI
|
||||||
// Create a new SpriteBatch, which can be used to draw textures.
|
// Create a new SpriteBatch, which can be used to draw textures.
|
||||||
spriteBatch = new SpriteBatch(GraphicsDevice);
|
spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||||
|
|
||||||
//effects[0] = content.Load<SoundEffect>("Sounds/alert");
|
//Need OpenAL Update for Windows 10 at least
|
||||||
//effects[1] = content.Load<SoundEffect>("Sounds/bip");
|
effects[0] = content.Load<SoundEffect>("Sounds/alert");
|
||||||
//effects[2] = content.Load<SoundEffect>("Sounds/change");
|
effects[1] = content.Load<SoundEffect>("Sounds/bip");
|
||||||
//effects[3] = content.Load<SoundEffect>("Sounds/valid");
|
effects[2] = content.Load<SoundEffect>("Sounds/change");
|
||||||
|
effects[3] = content.Load<SoundEffect>("Sounds/valid");
|
||||||
|
|
||||||
smallFont = content.Load<SpriteFont>("Fonts/small");
|
smallFont = content.Load<SpriteFont>("Fonts/small");
|
||||||
basicFont = content.Load<SpriteFont>("Fonts/basic");
|
basicFont = content.Load<SpriteFont>("Fonts/basic");
|
||||||
titleFont = content.Load<SpriteFont>("Fonts/title");
|
titleFont = content.Load<SpriteFont>("Fonts/title");
|
||||||
|
|
||||||
for (int i = 0; i < pointerSprites.Length; i++) {
|
for (int i = 0; i < pointerSprites.Length; i++) {
|
||||||
Console.WriteLine("Load pointer" + i);
|
|
||||||
pointerSprites[i] = content.Load<Texture2D>("Textures/Hub/pointer" + i);
|
pointerSprites[i] = content.Load<Texture2D>("Textures/Hub/pointer" + i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < buttonsSprites.Length; i++)
|
||||||
|
{
|
||||||
|
buttonsSprites[i].topLeft = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/topLeft");
|
||||||
|
buttonsSprites[i].topCenter = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/topCenter");
|
||||||
|
buttonsSprites[i].topRight = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/topRight");
|
||||||
|
buttonsSprites[i].centerLeft = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/centerLeft");
|
||||||
|
buttonsSprites[i].centerCenter = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/centerCenter");
|
||||||
|
buttonsSprites[i].centerRight = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/centerRight");
|
||||||
|
buttonsSprites[i].bottomLeft = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/bottomLeft");
|
||||||
|
buttonsSprites[i].bottomCenter = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/bottomCenter");
|
||||||
|
buttonsSprites[i].bottomRight = content.Load<Texture2D>("Textures/Hub/Buttons/" + i + "/bottomRight");
|
||||||
|
}
|
||||||
|
|
||||||
if (Directory.Exists("Skin/" + skinName))
|
if (Directory.Exists("Skin/" + skinName))
|
||||||
{
|
{
|
||||||
if (File.Exists("Skin/" + skinName + "/Sounds/alert.mp3")) using (FileStream fileStream = new FileStream("Skin/" + skinName + "/Sounds/alert.mp3", FileMode.Open)) { effects[0] = SoundEffect.FromStream(fileStream); }
|
if (Directory.Exists("Skin/" + skinName + "/Sounds"))
|
||||||
if (File.Exists("Skin/" + skinName + "/Sounds/bip.mp3")) using (FileStream fileStream = new FileStream("Skin/" + skinName + "/Sounds/bip.mp3", FileMode.Open)) { effects[1] = SoundEffect.FromStream(fileStream); }
|
|
||||||
if (File.Exists("Skin/" + skinName + "/Sounds/change.mp3")) using (FileStream fileStream = new FileStream("Skin/" + skinName + "/Sounds/change.mp3", FileMode.Open)) { effects[2] = SoundEffect.FromStream(fileStream); }
|
|
||||||
if (File.Exists("Skin/" + skinName + "/Sounds/valid.mp3")) using (FileStream fileStream = new FileStream("Skin/" + skinName + "/Sounds/valid.mp3", FileMode.Open)) { effects[3] = SoundEffect.FromStream(fileStream); }
|
|
||||||
|
|
||||||
for (int i = 0; i < pointerSprites.Length; i++)
|
|
||||||
{
|
{
|
||||||
if (File.Exists("Skin/" + skinName + "/Textures/Hub/pointer" + i + ".png")) using (FileStream fileStream = new FileStream("Skin/" + skinName + "/Textures/Hub/pointer" + i + ".png", FileMode.Open)) { pointerSprites[i] = Texture2D.FromStream(GraphicsDevice, fileStream); }
|
Utilities.SoundFromMp3("Skin/" + skinName + "/Sounds/alert.mp3", ref effects[0]);
|
||||||
|
Utilities.SoundFromMp3("Skin/" + skinName + "/Sounds/bip.mp3", ref effects[1]);
|
||||||
|
Utilities.SoundFromMp3("Skin/" + skinName + "/Sounds/change.mp3", ref effects[2]);
|
||||||
|
Utilities.SoundFromMp3("Skin/" + skinName + "/Sounds/valid.mp3", ref effects[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Directory.Exists("Skin/" + skinName + "/Textures"))
|
||||||
|
{
|
||||||
|
if (Directory.Exists("Skin/" + skinName + "/Textures/Hub/"))
|
||||||
|
{
|
||||||
|
if(Directory.Exists("Skin/" + skinName + "/Textures/Hub/Buttons"))
|
||||||
|
{
|
||||||
|
for (int i = 0; i < buttonsSprites.Length; i++)
|
||||||
|
{
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/topLeft.png", ref buttonsSprites[i].topLeft, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/topCenter.png", ref buttonsSprites[i].topCenter, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/topRight.png", ref buttonsSprites[i].topRight, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/centerLeft.png", ref buttonsSprites[i].centerLeft, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/centerCenter.png", ref buttonsSprites[i].centerCenter, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/centerRight.png", ref buttonsSprites[i].centerRight, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/bottomLeft.png", ref buttonsSprites[i].bottomLeft, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/bottomCenter.png", ref buttonsSprites[i].bottomCenter, GraphicsDevice);
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "Textures/Hub/Buttons/" + i + "/bottomRight.png", ref buttonsSprites[i].bottomRight, GraphicsDevice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < pointerSprites.Length; i++)
|
||||||
|
{
|
||||||
|
Utilities.SpriteFromPng("Skin/" + skinName + "/Textures/Hub/pointer" + i + ".png", ref pointerSprites[i], GraphicsDevice);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: use this.Content to load your game content here
|
// TODO: use this.Content to load your game content here
|
||||||
|
ChangeTo(GameStatus.Home);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -124,11 +184,26 @@ namespace Galactic_Colors_Control_GUI
|
||||||
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
|
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
|
||||||
Exit();
|
Exit();
|
||||||
|
|
||||||
mouseX = Mouse.GetState().X;
|
oldState = newState;
|
||||||
mouseY = Mouse.GetState().Y;
|
newState = Mouse.GetState();
|
||||||
|
mouseX = newState.X;
|
||||||
|
mouseY = newState.Y;
|
||||||
|
GUI.Mouse nowState;
|
||||||
|
nowState.leftPress = (oldState.LeftButton == ButtonState.Released && newState.LeftButton == ButtonState.Pressed);
|
||||||
|
nowState.leftRelease = (oldState.LeftButton == ButtonState.Pressed && newState.LeftButton == ButtonState.Released);
|
||||||
|
nowState.rightPress = (oldState.LeftButton == ButtonState.Released && newState.LeftButton == ButtonState.Pressed);
|
||||||
|
nowState.rightRelease = (oldState.LeftButton == ButtonState.Pressed && newState.LeftButton == ButtonState.Released);
|
||||||
|
|
||||||
|
oldKeys = newKeys;
|
||||||
|
newKeys = Keyboard.GetState().GetPressedKeys();
|
||||||
|
|
||||||
if (IsActive)
|
if (IsActive)
|
||||||
{
|
{
|
||||||
|
EventArgs e = new EventArgs();
|
||||||
|
foreach(GUI.Element element in elements.ToArray())
|
||||||
|
{
|
||||||
|
element.Update(mouseX, mouseY, nowState, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (gameStatus)
|
switch (gameStatus)
|
||||||
|
@ -171,6 +246,50 @@ namespace Galactic_Colors_Control_GUI
|
||||||
|
|
||||||
spriteBatch.Begin();
|
spriteBatch.Begin();
|
||||||
|
|
||||||
|
/*
|
||||||
|
switch (gameStatus)
|
||||||
|
{
|
||||||
|
case GameStatus.Home:
|
||||||
|
drawElements = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Options:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Game:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Pause:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.End:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Thanks:
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
foreach (GUI.Element element in elements)
|
||||||
|
{
|
||||||
|
element.Draw(spriteBatch);
|
||||||
|
}
|
||||||
|
|
||||||
|
spriteBatch.Draw(pointerSprites[0], new Rectangle(mouseX - 10, mouseY - 10, 20, 20), Color.Red);
|
||||||
|
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
|
base.Draw(gameTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ChangeTo(GameStatus newGameStatus)
|
||||||
|
{
|
||||||
|
//Things to do when leave status
|
||||||
switch (gameStatus)
|
switch (gameStatus)
|
||||||
{
|
{
|
||||||
case GameStatus.Home:
|
case GameStatus.Home:
|
||||||
|
@ -198,11 +317,43 @@ namespace Galactic_Colors_Control_GUI
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
spriteBatch.Draw(pointerSprites[0], new Rectangle(mouseX - 10, mouseY - 10, 20, 20), Color.Red);
|
elements.Clear();
|
||||||
|
|
||||||
spriteBatch.End();
|
//Initialise new status
|
||||||
|
switch (newGameStatus)
|
||||||
|
{
|
||||||
|
case GameStatus.Home:
|
||||||
|
elements.Add(new GUI.Label(new GUI.Vector(ScreenWidth / 2, ScreenHeight / 4), "Galactic Colors Control", titleFont, Color.DarkRed, true));
|
||||||
|
//elements.Add(new GUI.TextField(new GUI.Vector(ScreenWidth / 2, ScreenHeight / 2), null, basicFont, Color.Black, Color.Black, Color.DarkSlateGray, true, "Server address"));
|
||||||
|
elements.Add(new GUI.TexturedButton(new Rectangle(ScreenWidth / 2 - 100, ScreenHeight * 3 / 4,200,40),buttonsSprites[0], Color.White, Color.LightGray, Color.DarkGray, "Connect", basicFont, Color.Black, Color.Black, Color.White, ConnectClick));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Options:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Game:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Pause:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.End:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GameStatus.Thanks:
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
gameStatus = newGameStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConnectClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
base.Draw(gameTime);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.0.1")]
|
[assembly: AssemblyVersion("1.0.1.1")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.1")]
|
[assembly: AssemblyFileVersion("1.0.1.1")]
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
using Microsoft.Xna.Framework.Audio;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Galactic_Colors_Control_GUI
|
||||||
|
{
|
||||||
|
static class Utilities
|
||||||
|
{
|
||||||
|
static public void SpriteFromPng(string path, ref Texture2D sprite, GraphicsDevice graphics )
|
||||||
|
{
|
||||||
|
if (File.Exists(path))
|
||||||
|
{
|
||||||
|
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
|
||||||
|
{
|
||||||
|
sprite = Texture2D.FromStream(graphics, fileStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static public void SoundFromMp3(string path, ref SoundEffect sound)
|
||||||
|
{
|
||||||
|
if (File.Exists(path))
|
||||||
|
{
|
||||||
|
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) {
|
||||||
|
sound = SoundEffect.FromStream(fileStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|