0

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

应该只覆盖游戏表单绘制循环吗?或者我应该在 main 方法中执行 application.do events() 吗?

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

4

3 回答 3

2

问题的主体没有提到 Compact Framework,只是 Winforms。这几乎是来自 Tom Miller(来自 Microsoft 的 Xna Game Studio 和 Managed DirectX guy)对 Winforms 的公认答案:

Winforms 游戏循环

@Rich B:游戏循环独立于渲染的完成方式(DirectX、MDX、GDI+)

于 2008-09-16T16:54:53.297 回答
1

如果您正在制作游戏,您应该研究DirectXOpenGLXNA

于 2008-09-16T16:51:48.887 回答
1

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

我的建议是看看使用DirectX 托管库。有很多东西要学,但可以为您提供所需的一切。

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

于 2008-09-16T16:53:52.080 回答