-
Notifications
You must be signed in to change notification settings - Fork 0
/
Game1.cs
149 lines (126 loc) · 4.45 KB
/
Game1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace rts
{
public class Game1 : Microsoft.Xna.Framework.Game
{
//[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
// public static extern bool ClipCursor(ref rcClip);
public static Game1 Game { get; private set; }
public GameState CurrentGameState { get; private set; }
public GraphicsDeviceManager Graphics { get; private set; }
SpriteBatch spriteBatch;
FpsCounter fpsCounter;
public SoundEffectManager SoundEffectManager { get; private set; }
public DebugMonitor DebugMonitor { get; private set; }
public Game1()
{
Game = this;
Graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
//Graphics.PreferredBackBufferWidth = 1024;
//Graphics.PreferredBackBufferHeight = 740;
//Graphics.PreferredBackBufferWidth = 1280;
//Graphics.PreferredBackBufferHeight = 720;
Graphics.PreferredBackBufferWidth = 1024;
Graphics.PreferredBackBufferHeight = 576;
Graphics.ApplyChanges();
Window.Title = "";
IsMouseVisible = true;
Direction.Init();
CommandCard.Init();
UnitType.Init();
StructureType.Init();
fpsCounter = new FpsCounter(Game);
Components.Add(fpsCounter);
fpsCounter.DrawOrder = 0;
//fpsCounter.Enabled = true;
SoundEffectManager = new SoundEffectManager(Game);
Components.Add(SoundEffectManager);
SoundEffectManager.DrawOrder = 1;
//soundEffectManager.DrawDebugInfo = true;
DebugMonitor = new DebugMonitor(Game);
Components.Add(DebugMonitor);
//DebugMonitor.Enabled = true;
DebugMonitor.DrawBox = true;
DebugMonitor.Position = Direction.SouthEast;
ColorTexture.Initialize(GraphicsDevice);
spriteBatch = new SpriteBatch(GraphicsDevice);
//CurrentGameState = new Rts(RtsEventHandler);
CurrentGameState = new StartMenu(StartMenuEventHandler);
base.Initialize();
}
protected override void LoadContent()
{
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
CurrentGameState.Update(gameTime);
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
CurrentGameState.Draw(spriteBatch);
base.Draw(gameTime);
}
void StartMenuEventHandler(Object sender, EventArgs e)
{
if (e is StartGameArgs)
{
StartGameArgs args = (StartGameArgs)e;
CurrentGameState = new Rts(RtsEventHandler, args.NetPeer, args.Team);
}
else if (e is GameStateArgs)
{
GameStateArgs args = (GameStateArgs)e;
if (args.Args.Length > 0)
{
if (args.Args[0] == "exit")
{
Game.Exit();
}
else if (args.Args[0] == "create")
{
CurrentGameState = new HostLobby(HostLobbyEventHandler);
}
}
}
}
void HostLobbyEventHandler(Object sender, EventArgs e)
{
if (e is StartGameArgs)
{
StartGameArgs args = (StartGameArgs)e;
CurrentGameState = new Rts(RtsEventHandler, args.NetPeer, args.Team);
}
else if (e is GameStateArgs)
{
GameStateArgs args = (GameStateArgs)e;
if (args.Args.Length > 0)
{
}
}
}
void RtsEventHandler(Object sender, EventArgs e)
{
if (e is GameStateArgs)
{
GameStateArgs args = (GameStateArgs)e;
if (args.Args.Length > 0)
{
if (args.Args[0] == "exit")
{
Game.Exit();
}
}
}
}
}
}