游戏循环和GDI over .NET CF.

时间:2008-09-16 16:48:52

标签: c# game-loop

您好我想写一个主游戏形式和许多其他正常形式的游戏。在这种情况下,管理更新 - 绘制周期的最佳方法是什么?

是否应该覆盖游戏形式的绘画循环?或者我应该在main方法中执行application.do events()?

请指导我这件事。我是Windows窗体世界的新手

3 个答案:

答案 0 :(得分:2)

问题的主体没有提到Compact Framework,只是Winforms。这几乎是Tom Miller(Xna Game Studio和微软托管DirectX人)Winforms的接受答案:

Winforms Game Loop

@Rich B:游戏循环与渲染完成的方式无关(DirectX,MDX,GDI +)

答案 1 :(得分:1)

如果您正在制作游戏,则应该调查DirectXOpenGLXNA

答案 2 :(得分:1)

您的逻辑线程应该与表单分开,因此您不需要DoEvents()。如果您正在使用GDI +,那么您应该在循环上强制执行Update()。 Windows Forms不能很好地进行双缓冲,因此根据您的图形的复杂程度,您可能会遇到一些闪烁问题。

我的建议是使用DirectX managed library。这需要学习很多,但能为您提供所需的一切。

修改 我最近一直在阅读WPF,这对于简单到中等复杂的游戏来说似乎是一个更好的平台,因为它提供了比DirectX managed Library更高级别的API。但是,对于更复杂的游戏,它可能具有性能和灵活性限制。