たびたびお世話になっています。
SetAlwaysRunFlag(TRUE)で非アクティブ時も動作するように設定した場合、ウィンドウを最小化すると
ゲームが異常な速度(おそらくCPU能力の限界)で動作するので報告します。
VS2017/Dxlib暫定最新版/win7
以下のプログラムで、画面に表示される数字は(リフレッシュレートが普通の環境なら)一秒に60増加するはずですが、
ウィンドウを最小化して1秒ほど待ってウィンドウを元に戻すと数字が10000ほど増えています。
#include "DxLib.h"
namespace {
constexpr int windowWidth = 640;
constexpr int windowHeight = 480;
}
bool dxlibInit() {
ChangeWindowMode(TRUE); //ウインドウモードにする
SetWindowSize(windowWidth, windowHeight);
SetAlwaysRunFlag(TRUE);
// DXライブラリ初期化処理
if (DxLib_Init() == -1) {
return false;
}
SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に設定
return true;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
if (!dxlibInit()) {
// エラーが起きたら直ちに終了
return 1;
}
int count = 0;
while (true) {
if (ProcessMessage() == -1)break;
ScreenFlip();
ClearDrawScreen();
DrawFormatString(100, 100, GetColor(255, 255, 255), "%d", count);
++count;
}
DxLib_End();
return 0;
}