1
0
Fork 0
MyMonoGame/Exemple/MainGame.cs

109 lines
3.2 KiB
C#
Raw Normal View History

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
}
}
}