我需要在后台改变整数,而GameWindow在OpenTK中打开我测试了一些东西而且Totaly在这段代码之后没有工作:
GameWindow polyWindow = new GameWindow(1024, 768);
polyWindow.Run(200);
Folowwing代码:
if (Gamesets.Polygon.Playfield.timer == 2)
{
polyWindow.Close();
}
不执行,它只是一个在2之后关闭窗口的基本计时器 秒,“守则”就在这里:
public static int timer;
public static int ms_timer;
public static void playfield()
{
while (true)
{
ms_timer = + ms_timer + 1;
System.Threading.Thread.Sleep(10);
Console.WriteLine(timer + "S"+ms_timer + "MS");
if (ms_timer == 100) { timer = timer + 1; ms_timer = 0; }
if (timer == 10)
{
}
并且在显示GameWindow之后它不起作用
答案 0 :(得分:0)
GameWindow.Run()语句之后写的任何代码都将在窗口关闭之后才会执行。因此,在polywindow.close()已经执行或您手动关闭窗口之前,检查时间是否等于2的代码将不会运行。
或者您可以做的是,在Update或Render方法中从Opentk窗口中检查计时器并在那里执行Close()方法。
例如:
protected override void OnUpdateFrame(FrameEventArgs e)
{
base.OnUpdateFrame(e);
if (Gamesets.Polygon.Playfield.timer == 2)
{
Close();
}
}