2017-02-08 18:42:03 +00:00
using System ;
using MyMonoGameAddin ;
using Microsoft.Xna.Framework ;
using Microsoft.Xna.Framework.Graphics ;
2017-02-09 14:52:48 +00:00
using System.Diagnostics ;
2017-02-08 18:42:03 +00:00
namespace Exemple
{
2017-02-09 14:52:48 +00:00
public class MainGame : Game
2017-02-08 18:42:03 +00:00
{
2017-02-09 14:52:48 +00:00
enum GameState { Menu , Credit }
2017-02-10 22:35:24 +00:00
ScreenManager screen ;
2017-02-08 18:42:03 +00:00
SpriteBatch spriteBatch ;
ResourcesManager resources ;
2017-02-09 14:52:48 +00:00
InputsManager inputs ;
UIManager ui ;
2017-02-08 18:42:03 +00:00
2017-02-09 14:52:48 +00:00
GameState state = GameState . Menu ;
2017-02-08 18:42:03 +00:00
2017-02-09 14:52:48 +00:00
string Github ;
2017-02-08 18:42:03 +00:00
2017-02-09 14:52:48 +00:00
public MainGame ( )
2017-02-08 18:42:03 +00:00
{
2017-02-10 22:35:24 +00:00
screen = new ScreenManager ( this ) ;
2017-02-09 14:52:48 +00:00
2017-02-08 18:42:03 +00:00
Content . RootDirectory = "Content" ;
2017-02-09 14:52:48 +00:00
inputs = new InputsManager ( ) ;
2017-02-08 18:42:03 +00:00
resources = new ResourcesManager ( Content , GraphicsDevice ) ;
}
protected override void Initialize ( )
{
2017-02-10 22:35:24 +00:00
screen . Initialize ( new Vector ( 800 , 600 ) , false , true , true ) ;
2017-02-08 18:42:03 +00:00
base . Initialize ( ) ;
}
protected override void LoadContent ( )
{
spriteBatch = new SpriteBatch ( GraphicsDevice ) ;
2017-02-09 14:52:48 +00:00
resources . LoadFont ( "Normal" ) ;
resources . LoadFont ( "Title" ) ;
2017-02-08 18:42:03 +00:00
//resources.LoadSound("bip");
resources . LoadTexture ( "Background" ) ;
resources . LoadBox ( "Button" ) ;
2017-02-09 14:52:48 +00:00
ui = new UIManager ( spriteBatch , inputs , new Skin ( resources . Boxes [ "Button" ] , resources . Fonts [ "Normal" ] , new Colors ( Color . White , Color . LightGray , Color . DarkGray ) , new Colors ( Color . Black , Color . Black , Color . White ) ) ) ;
2017-02-08 18:42:03 +00:00
}
protected override void Update ( GameTime gameTime )
{
inputs . Update ( ) ;
2017-02-09 14:52:48 +00:00
ui . Update ( ) ;
2017-02-08 18:42:03 +00:00
base . Update ( gameTime ) ;
}
protected override void Draw ( GameTime gameTime )
{
2017-02-10 22:35:24 +00:00
screen . Clear ( Color . DarkGray ) ;
2017-02-08 18:42:03 +00:00
spriteBatch . Begin ( ) ;
2017-02-09 14:52:48 +00:00
ui . Texture ( new Rectangle ( 10 , 10 , 200 , 150 ) , resources . Textures [ "Background" ] ) ;
switch ( state )
{
case GameState . Credit :
2017-02-10 22:35:24 +00:00
ui . Box ( new Rectangle ( 200 , 100 , screen . size . X - 400 , screen . size . X - 200 ) , new Colors ( Color . LightGray , Color . White ) ) ;
ui . Label ( new Vector ( screen . size . X / 2 , screen . size . Y / 4 ) , "By Sheychen" , new Colors ( Color . Red , Color . OrangeRed ) , null , UIManager . textAlign . centerCenter ) ;
if ( ui . Button ( new Rectangle ( screen . size . X / 2 - 100 , screen . size . Y / 2 - 100 , 200 , 40 ) , "My website" ) )
2017-02-09 14:52:48 +00:00
{
Process . Start ( "https://sheychen.shost.ca" ) ;
}
2017-02-10 22:35:24 +00:00
if ( ui . Button ( new Rectangle ( screen . size . X / 2 - 100 , screen . size . Y / 2 - 50 , 200 , 40 ) , "Show on GitHub" ) )
2017-02-09 14:52:48 +00:00
{
Process . Start ( "https://github.com/sheychen290/MyMonoGame" ) ;
}
2017-02-10 22:35:24 +00:00
if ( ui . Button ( new Rectangle ( screen . size . X / 2 - 100 , screen . size . Y / 2 , 200 , 40 ) , "Back" ) )
2017-02-09 14:52:48 +00:00
{
state = GameState . Menu ;
}
break ;
case GameState . Menu :
2017-02-10 22:35:24 +00:00
ui . Label ( new Vector ( screen . size . X / 2 , screen . size . Y / 4 ) , "MyMonoGameAddin" , new Colors ( Color . Black , Color . Green ) , resources . Fonts [ "Title" ] , UIManager . textAlign . centerCenter ) ;
if ( ui . TextField ( new Vector ( screen . size . X / 2 , screen . size . Y / 2 ) , ref Github , new Colors ( Color . White , Color . WhiteSmoke , Color . LightGray ) , null , UIManager . textAlign . centerCenter , "Search on Github" ) )
2017-02-09 14:52:48 +00:00
{
Process . Start ( "https://github.com/search?q=" + Github ) ;
Github = null ;
}
2017-02-10 22:35:24 +00:00
if ( ui . Button ( new Rectangle ( screen . size . X / 2 - 100 , screen . size . Y * 3 / 4 + 50 , 200 , 40 ) , "About" , null , new Colors ( Color . Black , Color . Green ) ) )
2017-02-09 14:52:48 +00:00
{
state = GameState . Credit ;
}
break ;
}
2017-02-08 18:42:03 +00:00
spriteBatch . End ( ) ;
base . Draw ( gameTime ) ;
}
2017-02-09 14:52:48 +00:00
protected override void OnExiting ( object sender , EventArgs args )
2017-02-08 18:42:03 +00:00
{
2017-02-09 14:52:48 +00:00
Process . GetCurrentProcess ( ) . Kill ( ) ;
base . OnExiting ( sender , args ) ;
2017-02-08 18:42:03 +00:00
}
}
}