04/03/30 23:32 fcRSAwJm
個人的な好みだけど、前回のループのカウンターサンプリングからの経過時間⊿t
を、実数で持ってたほうが何かと便利かも。おじさんの頃はFPUが遅かったので
固定小数点命だったろうけど、今じゃ、バリバリ浮動小数点使います。
Real fInversedFrequency;
LARGE_INTEGER liPrevCount;
void init( void )
{
LARGE_INTEGER liFrequency;
bResult = QueryPerformanceFrequency( &liFrequency );
errorCheck( !bResult ); //カウンターサポートなし。
fInversedFrequency= 1.0f / Real ( liFrequency );
liPrevCount = 0;
}
void gameLoop( void )
{
LARGE_INTEGER liCount;
Real dt; //⊿t (sec)
QueryPerformanceCounter( &liCount );
if( liPrevCount != 0 ) {
dt = Real( liCount - liPrevCount ) * fInversedFrequency;
} else {
dt = 0;
}
処理:UpdateAI(), Render(), etc.....
}