開発日誌

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;
		}
	}