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

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

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

有帮助吗?

解决方案

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

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

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

其他提示

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

Winforms 游戏循环

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

如果你正在制作游戏,你应该考虑 直接X, OpenGL, , 或者 XNA.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top