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

应该仅覆盖游戏形式的绘制循环吗? 或者我应该在主要方法中执行一个application.do events()吗?

请为此指导我。 我是Windows Forms World的新手

===============>>#1 票数:2

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

Winforms游戏循环

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

===============>>#2 票数:1

如果您要开发游戏,则应该研究DirectXOpenGLXNA

===============>>#3 票数:1 已采纳

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

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

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

  ask by Azlam translate from so

未解决问题?本站智能推荐:

1回复

C#GDI游戏循环(FPS计数器)

我目前正在使用C#,GDI制作2D游戏引擎,并设置了一个简单的边框。 游戏只能渲染60fps。 据我所知,代码没有问题,我只想一种更清晰的60fps渲染方式。 这是我的代码,任何帮助都会很棒
2回复

在Windows窗体中实现游戏循环[关闭]

我很抱歉有关这个游戏的常见问题,但我不知道在我的游戏中在哪里以及如何实现游戏循环。 我希望gameloop能像这样工作: 这是我的代码: 更新: 试图与班级做这个,是的,它再一次产生敌人,但动画被窃听,我可以看到敌人从一个位置跳到另一个位置。 谢谢你的帮助。
2回复

是否有实现异步游戏引擎循环的最佳实践?

我已经实现了一个游戏引擎循环如下: 我正在使用Jeff Richter在他的文章“ 实现CLR异步编程模型”中推荐的AsyncResult类。 为了能够从UI停止引擎,我使用的实现与标准异步模式略有不同。 这个实现按预期工作,但是当我偏离标准实践时,我回到SO社区以确保我以正确的方式
3回复

如何为运行(每(毫秒)毫秒的)游戏创建一个“循环”?

我试图在google和stackoverflow上搜索它,但是我不确定该怎么称呼,所以找不到它。 我如何为每100毫秒运行一次的C#程序创建一个“循环”? 与Minecraft所说的“滴答声”或GameMaker所说的“台阶”相似。 我不知道该怎么做。 我正在使用Visual S
4回复

在XNA 4.0中避免游戏循环

我在XNA 4.0上开发了一个简单的3D模型查看器。 有没有办法避免使用绘图和更新功能的无限游戏循环? 我需要渲染3D图形,但没有无限的场景渲染。 我的意思是我需要重绘场景才真正改变了。
3回复

C#中的简单游戏只有本机库

我可以找到一组java 2D游戏教程和Android游戏教程 ,它们只使用原生图形库 。 我在C#中寻找类似的东西(没有DirectX或XNA) 我发现这个游戏循环骨架 ,但它没有告诉如何渲染图形。 目标是模拟一个简单的电子设备。 当用户快速按下键盘上的某些键时,我需要显示一些图
1回复

调用'update'后XNA游戏堆栈溢出错误

今天是个好日子, 我一直在构建一个跨平台的框架/抽象层,以便在适当的平台上利用Mono和XNA框架来定位Android,iOS和Windows Phone 7。 我没有使用ExEn,MonoGame或类似的框架,尽管我从研究他们的方法中学到了很多东西。 框架的XNA部分扩展了XNA
3回复

制作控制台游戏的方法是否比使用Console.Clear()更好?

我正在搞乱游戏循环,并将创建一些游戏作为练习。 目前我有一个稳定的游戏循环,游戏尽可能快地更新,渲染每秒更新x次(当前25次) rendinging方法基本上是一个draw + Console.Clear(),并且在非常高的更新时,显示变得非常紧张,因为当Console.Clear(
1回复

GDI窗口中的游戏循环/一段时间后不刷新并崩溃

这是我当前在普通窗口中进行的游戏循环: ...但是我应该把DrawGame放在Translate和DispatchMessage之间吗? 如果我将DrawGame放在UpdateGame上方/下方,则不会绘制任何内容。 过了一会儿,如果我画一个简单的矩形,它们开始互相重叠。 它
9回复

Lua,游戏状态和游戏循环

在每个游戏循环迭代中调用main.lua脚本 - 是好还是坏设计? 它如何影响性能(相对)? 从维护游戏状态。 C ++主机程序或b 。 来自Lua脚本或c 。 来自两者并同步它们? (关于该主题的上一个问题: Lua和C ++:职责分离 ) (我投票给每个答案