開発日誌
DXライブラリのサンプルプログラムがどのようにfpsを管理しているのかちょっと見てみると、
恐るべきことに、
見た限りでは全部のサンプルがVSyncを待つFlipなんたらいう関数をループの中身の最後としておくことで60FPSくらいになるという仕組みで、
タイマー関係のルーチンそのものを使わないようだ。
タイマー関数を調べて以下のようにした。が、これではもしかしたら遅延や過負荷が発生してしまうのかも。
何か不具合が出たらそのとき考えるというメモ。
#define WAITVAL 20 //などなど ... movedone = 0; clo_old = GetNowCount(); while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { if (!movedone) { moveeveryone(); movedone = 1; } clo_now = GetNowCount(); if (clo_now - clo_old >= WAITVAL && movedone) { // 裏画面の内容を表画面に反映させる ScreenFlip() ; clo_old = GetNowCount(); movedone = 0; } }