私も数日PCを起動しっぱなしにしたことが何度かありますが、載せていただいたような現象は
遭遇したことがありません…
幾つかご質問させてください
1. お使いのPCのスペック( OS, CPU, メモリ容量,グラフィックカードなど )を教えていただけないでしょうか?
2. 最新版のDXライブラリをお使いでしょうか?
3. 1日起動しっぱなしの間、ログアウト状態やディスプレイがスタンバイモードになることなく、
ずっとディスプレイの電源がONで画面が表示された状態でしょうか?
4. 以下のようなシンプルなプログラムでもFPSが120になる現象と、1280のウィンドウの横幅に対して800くらいまでしか
画像が表示されなくなる現象は発生しますでしょうか?
< 画面の中を棒が上下に動くプログラム >
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int FPSCounter ;
int DispFPS ;
int FPSTime ;
int x, y, xadd, yadd ;
// ウィンドウモードで起動
ChangeWindowMode( TRUE ) ;
// 画面モードは 720p
SetGraphMode( 1280, 720, 32 ) ;
// DXライブラリ初期化処理
if( DxLib_Init() == -1 )
{
return -1 ;
}
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// FPS表示処理初期化
DispFPS = 0 ;
FPSCounter = 0 ;
FPSTime = GetNowCount() ;
// 動く棒の変数初期化
x = 0 ;
xadd = 8 ;
y = 0 ;
yadd = 8 ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面をクリア
ClearDrawScreen() ;
// 動く棒の動作+描画処理
x += xadd ;
if( x <= 0 )
{
x = 0 ;
xadd = -xadd ;
}
else if( x >= 1280 )
{
x = 1280 ;
xadd = -xadd ;
}
DrawBox( x - 16, 0, x + 16, 720, GetColor( 0,255,0 ), TRUE ) ;
y += yadd ;
if( y <= 0 )
{
y = 0 ;
yadd = -yadd ;
}
else if( y >= 720 )
{
y = 720 ;
yadd = -yadd ;
}
DrawBox( 0, y - 16, 1280, y + 16, GetColor( 255,255,0 ), TRUE ) ;
// FPS表示処理
FPSCounter ++ ;
int NowCount = GetNowCount() ;
if( NowCount - FPSTime >= 1000 )
{
DispFPS = FPSCounter ;
FPSCounter = 0 ;
FPSTime = NowCount ;
}
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "FPS:%d", DispFPS ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリ使用の終了処理
DxLib_End() ;
// ソフトの終了
return 0 ;
}