int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
SetMainWindowText( "asm" );//ウィンドウの名前
message_box();//フルスクリーンにするかどうかの関数
if( DxLib_Init() == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
load_img();//画像のロード
ChangeFontType( DX_FONTTYPE_ANTIALIASING );//アンチ
while(!ProcessMessage() /*&& !ClearDrawScreen()*/ && !GetHitKeyStateAll( KeyBuf ) && !KeyBuf[KEY_INPUT_ESCAPE]){
RefreshTime = GetNowCount(); //FPS 今の時間を取得
ClearDrawScreen();
switch(game_state){
case DAIRY:
dairy_mes();
//DrawFormatString(100,100,col,"%d",(int)PlayerShot[1][2].x);
break;
case GAME_TITLE:
game_title();
break;
case GAME_END:
return 0;
break;
case GAME_PRA:
game_pra();
break;
}
//FpsTimeFanction(); //こちらをコメントにすると画面がちらつく
ScreenFlip();
FpsTimeFanction(); //こちらをコメントにするとちらつかない
if(battle_flag==1) A_counter++;
while(GetNowCount() - RefreshTime < 17); //FPS 1周の処理が17ミリ秒になるまで待つ
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
上記のソースなのですが、FpsTimeFanction();の位置によって画面がちらつきます。
現在上の部分をコメントにしていますが、この状態だと画面がちらつきます。
して、下をコメントにし、上の//をはずすとちらつきが完全に直ります。
なら下をコメントにして上の//をはずせばいいのか~と思いきや、それではFpsが表示されません。
それにもしかしたら、Fps制御を完全にスルーしているようにも見えます。
原因、対処法はどのようになりますか?
FpsTimeFanction();は旧ゲームプログラムの館そのままです。
もし公開した方がいい関数などありましたら言ってください。
画面のちらつきについて
Re:画面のちらつきについて
//FpsTimeFanction(); //こちらをコメントにすると画面がちらつく
ScreenFlip();
FpsTimeFanction(); //こちらをコメントにするとちらつかない
すいません、上と下逆でした……。
正確には
ScreenFlipの前にFpsTimeFanctionがあるとちらつき、
後だとちらつかない、
です。
ScreenFlip();
FpsTimeFanction(); //こちらをコメントにするとちらつかない
すいません、上と下逆でした……。
正確には
ScreenFlipの前にFpsTimeFanctionがあるとちらつき、
後だとちらつかない、
です。
Re:画面のちらつきについて
ScreenFlipの前後によって変わるということは通常起きないので、
まず、Fpsの関数のみ記述して、出力してみてください。
そこからちょっとずつ関数を戻して行ってみてください。
おかしくなったら、その前に戻した関数が原因です。
> それにもしかしたら、Fps制御を完全にスルーしているようにも見えます。
そんなことはまずありませんので、デバッガ利用で色々追ってみてください。
#ClearDrawScreenはコメントアウトですか?
まず、Fpsの関数のみ記述して、出力してみてください。
そこからちょっとずつ関数を戻して行ってみてください。
おかしくなったら、その前に戻した関数が原因です。
> それにもしかしたら、Fps制御を完全にスルーしているようにも見えます。
そんなことはまずありませんので、デバッガ利用で色々追ってみてください。
#ClearDrawScreenはコメントアウトですか?
