どうでしょう?
処理速度を計測するプログラムを作ってみました。
Z,X,Cキーをそれぞれ任意に押してみてください。
[[ ]]に書かれている数字がFPSです。
普通60以上になります。この数字がZ,X,Cどのキーを押しても60以上がたもてていたら問題ありません。
#include "DxLib.h"
void graph(int states){
int i,j;
switch(states){
case 0:
DrawString(0,20,"現在1フレームに0個の四角形を描画しています。",GetColor(255,255,255));
break;
case 1:
DrawString(0,20,"現在1フレームに100個の四角形を描画しています。",GetColor(255,255,255));
for(i=0;i<100;i++)
DrawBox(i,100,i+300,400,GetColor(GetRand(255),GetRand(255),GetRand(255)),TRUE);
break;
case 2:
DrawString(0,20,"現在1フレームに10000個の四角形を描画しています。",GetColor(255,255,255));
for(j=0;j<100;j++)
for(i=0;i<100;i++)
DrawBox(i,100,i+300,400,GetColor(GetRand(255),GetRand(255),GetRand(255)),TRUE);
break;
default:
break;
}
return;
}
void fps(int count , int wait , int states){
int i;
static int ave=0,f[60];
f[count%60]=wait;
if(count%60==59){
ave=0;
for(i=0;i<60;i++)
ave+=f;
ave/=60;
}
if(ave!=0)
DrawFormatString(0,0,GetColor(255,255,255),"[[%.1f]] 現在%d Zキー:0 Xキー:1 Cキー:2",1000.0/(double)ave,states);
return;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int wait=0,count=0,t=0,states=0;
char Key[256];
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && Key[KEY_INPUT_ESCAPE]==0){
if (Key[KEY_INPUT_Z]==1) states=0;
else if(Key[KEY_INPUT_X]==1) states=1;
else if(Key[KEY_INPUT_C]==1) states=2;
graph(states);
wait = GetNowCount()-t;
t=GetNowCount();
fps(count,wait,states);
count++;
ScreenFlip();
}
DxLib_End();
return 0;
}