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 に答える