-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
72 lines (64 loc) · 2.06 KB
/
Program.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SFML;
using SFML.Graphics;
using SFML.Window;
using System.Windows.Forms;
namespace FTLShipEdit
{
static class Program
{
static Game game;
public static RenderWindow app;
[STAThread]
static void Main(string[] args)
{
game = new Game();
game.Start();
StartupForm startup = new StartupForm();
DialogResult startupResult;
do
{
startupResult = startup.ShowDialog();
if (startupResult == DialogResult.Abort)
{
Application.Exit();
Environment.Exit(1);
return;
}
}
while(startupResult == DialogResult.Cancel);
app = new RenderWindow(new VideoMode(800, 600), "FTLEdit: Ship Editor", Styles.Default);
app.Closed += new EventHandler(OnClosed);
app.KeyPressed += new EventHandler<SFML.Window.KeyEventArgs>(OnKeyPressed);
app.SetFramerateLimit(30);
while (app.IsOpen())
{
app.DispatchEvents();
app.Clear();
game.Draw(app);
game.Update();
app.Display();
if(game.cursorMode != CursorMode.PlacedBGCursor)
Application.DoEvents();
}
}
static void OnClosed(object sender, EventArgs e)
{
Window window = (Window)sender;
window.Close();
}
/// <summary>
/// Function called when a key is pressed
/// </summary>
static void OnKeyPressed(object sender, SFML.Window.KeyEventArgs e)
{
Window window = (Window)sender;
if (e.Code == Keyboard.Key.Escape)
window.Close();
game.OnKeyPressed(sender, e);
}
}
}