制限時間を2分に設定して徐々に残り時間を減らすプログラムを作りました
しかし、なぜか1秒たつのが遅いです。時計と比較しても時計より1秒立つのが遅いです。
その原因がわからないため質問しました
以下がそのプログラムです
#include "DxLib.h"
LONGLONG timecnt;
int timelimit;
/ メインプログラム
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
SetGraphMode( 800 , 600 , 16 ) ; //画面モードの変更
ChangeWindowMode( TRUE ) ; //ウインドウモードに変更
// DXライブラリ初期化処理
if( DxLib_Init() == -1 ){return -1 ;} //エラーが起きたら直ちに終了
SetDrawScreen( DX_SCREEN_BACK ) ; //描画先を裏画面にする
ChangeFontType( DX_FONTTYPE_EDGE ) ; //フォントタイプ変更
SetAlwaysRunFlag(TRUE); //非アクティブでも処理を行う
timecnt = GetNowHiPerformanceCount();
timelimit = 120000000;
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ){
ClsDrawScreen() ; //画面に描かれているものを一回全部消す
//制限時間
if( GetNowHiPerformanceCount() - timecnt >= 10000 ){
timecnt = GetNowHiPerformanceCount();
timelimit -= 10000;
}
//制限時間表示
DrawFormatString( 5, 5, GetColor( 255 , 255 , 255) ,"%02d'%02d'%d%d", timelimit/60000000 , (timelimit%60000000)/1000000 , ((timelimit%60000000)%1000000)/100000 , (((timelimit%60000000)%1000000)%100000)/10000 );
ScreenFlip() ; //裏画面の内容を表画面に反映させる
}
DxLib_End() ; //DXライブラリ使用の終了処理
return 0 ; //ソフトの終了
}