2

我想我有一些解释要做:

  • 我对游戏编程相当陌生,所以如果我不立即理解一个概念,请不要生气
  • 该游戏使用 DirectX 10 并用 C++ 编写
  • 这是非常简单的2D游戏

情况:尽管游戏逻辑和图形都非常简单,但它仍然需要我的 CPU 和 GPU 负载到 100%。甚至菜单也以每秒超过 2000 帧的速度显示。

我的问题不是游戏运行太快。我已经使用 QueryPerformanceCounter 函数对精灵动画和游戏逻辑进行了计时。

实际的问题是,游戏多次计算相同的代码,而屏幕上没有发生任何事情,因此给我的硬件带来了巨大的负担。

我可以通过哪些方式减少游戏的硬件负载?我觉得使用睡眠是“作弊”。

4

2 回答 2

2

感谢 Damon 为我指明了正确的方向,我研究了当前的功能。(http://msdn.microsoft.com/en-us/library/windows/desktop/bb174576(v=vs.85).aspx

解决 CPU 和 GPU 负载问题所需的一切都在改变

swapChain->Present(0, 0);

swapChain->Present(1, 0);
于 2012-06-06T14:35:53.803 回答
0

只是一个快速的建议:

每次进入游戏循环时,计算自上次进入以来经过的时间。如果这个时间低于给定的阈值,则返回而不处理任何内容。

于 2012-06-05T10:26:28.787 回答