嗨,我想编写一个具有主要游戏形式和许多其他正常形式的游戏。在这种情况下,管理更新绘制周期的最佳方法是什么?
应该只覆盖游戏表单绘制循环吗?或者我应该在 main 方法中执行 application.do events() 吗?
请指导我。我是 Windows 窗体世界的新手
问题的主体没有提到 Compact Framework,只是 Winforms。这几乎是来自 Tom Miller(来自 Microsoft 的 Xna Game Studio 和 Managed DirectX guy)对 Winforms 的公认答案:
@Rich B:游戏循环独立于渲染的完成方式(DirectX、MDX、GDI+)
您的逻辑线程应该与表单分开,因此您不需要 DoEvents()。如果您使用的是 GDI+,那么您应该在循环中强制执行 Update()。Windows 窗体不能很好地进行双缓冲,因此根据您的图形的复杂程度,您可能会遇到一些闪烁问题。
我的建议是看看使用DirectX 托管库。有很多东西要学,但可以为您提供所需的一切。
编辑: 我最近一直在阅读有关 WPF 的文章,对于简单到中等复杂的游戏来说,它似乎是一个更好的平台,因为它提供了比DirectX 托管库更高级别的 API 。但是,对于更复杂的游戏,它可能具有性能和灵活性限制。