.NET CF 上的游戏循环和 GDI

Posted

技术标签:

【中文标题】.NET CF 上的游戏循环和 GDI【英文标题】:Game Loop and GDI over .NET CF 【发布时间】:2008-09-16 16:48:52 【问题描述】:

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

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

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

【问题讨论】:

您的问题是“在具有主要游戏形式和其他正常形式的游戏中管理更新绘制周期的最佳方法是什么?”不是“.NET CF 游戏循环”。请修复。 【参考方案1】:

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

Winforms Game Loop

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

【讨论】:

我没有在 OP 中找到您所说的任何内容。他的头衔清楚地写着CF。他问的是在“游戏循环”中渲染。【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

如果您正在制作游戏,您应该关注DirectX、OpenGL 或XNA。

【讨论】:

它基本上是一个在 GDI+ 上的游戏,有很多表格和一个带有一些游戏逻辑的表格,它在 .NET CF 上 再一次,你应该看看我提到的技术,winforms 不太可能很好地支持你想要的东西。

以上是关于.NET CF 上的游戏循环和 GDI的主要内容,如果未能解决你的问题,请参考以下文章

手机上的帧率和游戏循环

用vs2010编写C#程序,将图片保存到一个文件夹中,下次循环覆盖保存,提示gdi+中发生一般性错误。。。

绑定 CF for 循环和 if else 循环

循环访问 asp.net 网页上的所有控件

题解 CF767A Snacktower

题解 CF767A Snacktower