私はゲームプログラミングに関する本からDirectXを学んでおり、ゲームループには次の方法を使用しています。
long int start = GetTickCount();
while(true)
GameRun();
void GameRun()
{
if(GetTickCount() - start >= 30)
//do stuff
}
これはstart
、時間に関係なく等しくなり(get tick countは、プログラムの開始以降の「ティック」の数を示すと思います)、30ティック後に、すべてのAI、レンダリングなどを実行します。
私の質問は、最初にすべてのAIなどを実行してから、時間が残っている場合は、フレームを変更する必要があるまで待つ方が効率的ではないでしょうか。
では、安定したフレームレートを維持するためのより良い方法は何でしょうか?(できれば、サウンド、画像、入力(d3d9.hなど)にすでに使用しているDirectXヘッダーのみを使用することをお勧めします)
また、関連するメモとして、GetTickCount()は正確に何を実行し、「ティック」の長さはどれくらいですか。