【发布时间】:2014-08-30 17:59:50
【问题描述】:
我正在 C# 中的 WindowsForms 应用程序中创建“Main()”函数。我一直在关注一本关于 C# 游戏编程的书。当我运行示例时,一切正常,但当我尝试制作自己的版本时,一切都没有。
这是 Main() 函数:
public void Main()
{
while (!gameOver)
{
// Non timed code:
int ticks = Environment.TickCount;
if (ticks > lastTick + 16)
{
lastTick = ticks;
//Timed (60FPS) code here:
Application.DoEvents();
}
}
}
当我把它放在“Form1_Load”函数中时,当我启动程序时,表单甚至不显示,同时没有给出任何错误或警告(在运行的示例中也是如此)。如果我将“Main()”移动到例如“MouseClick”并显示表单,当我单击时,该函数开始正常运行。
我真的不知道为什么会发生这种情况。我在这里遗漏了一些非常明显的东西吗?
【问题讨论】:
-
如果这是您的全部主要功能(假设它在
Program.cs文件中),那么您永远不会加载要显示的表单。 -
在页面加载时设置一个断点,然后检查您的代码。可能一个因素是
check that gameOver返回 false -
这本书有多久了?无论如何,DoEvents 都是一个坏主意。
标签: c# winforms while-loop main