どうしたらFPSを60前後にすることが出来るのでしょうか?どこか間違っているのでしょうか?
ソースです。
多分ここら辺だろうなというところを載せます。
void FPSCount(void){
static DWORD before_time = timeGetTime(); // 以前の時間
DWORD now_time = timeGetTime(); // 現在の時間
static DWORD fps_ctr = 0;
TCHAR buff[80]; // 文字列表示用バッファ
if(now_time - before_time >= 1000){
// 初期化
before_time = now_time;
*fps = fps_ctr;
wsprintf(buff,_T("%d\n"),fps_ctr);
OutputDebugString(buff);
fps_ctr = 0;}
fps_ctr++;
}
// エントリポイント
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
・
・
・
// メッセージループ
while(true)
{
if (PeekMessage(&msg, NULL, 0,0,PM_REMOVE))
{
if (msg.message == WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
fps++;
// 同期処理
if (timeGetTime() - dwStart >= 1000/FPS+0.5)
{
FPSCount();
// 時間更新
dwStart = timeGetTime();
fps=0;
// 描画処理
Draw();
}
}
Sleep(1);
}
timeEndPeriod(1);
// 終了処理
Cleanup();
// 戻り値を返します。
return (int)msg.wParam;}
}
です。よろしくお願いします。