enterを押すとロード画面に行くようにしているのですが、enterを二回押さないと
ロード画面に行きません。なぜなのでしょうか?お願いします。以下ソースです。
-----start.cpp--------
#include"DxLib.h" void choice(int y,int str1,int str2) { LoadGraphScreen(215,y,"hagure.bmp",TRUE); DrawFormatStringToHandle(220,120,GetColor(255,255,255),str1,"UNTITLED"); DrawFormatStringToHandle(250,260,GetColor(255,255,255),str2,"START"); DrawFormatStringToHandle(250,280,GetColor(255,255,255),str2,"CONTINUE"); } void ContinueScreen(int str1) { ClearDrawScreen(); DrawFormatStringToHandle(220,120,GetColor(255,255,255),str1,"ロード画面"); WaitKey(); } void start(void) { int str1,str2,y=260; int DownOshita=0,NewDown=0,OldDown=0,DownPusingCounter=0; int UpOshita=0,NewUp=0,OldUp=0,UpPushingCounter=0; char keybuf[256]; str1=CreateFontToHandle("MS 明朝",40,5,DX_FONTTYPE_NORMAL); str2=CreateFontToHandle("MS 明朝",20,3,DX_FONTTYPE_NORMAL); SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定 while(1){ ClearDrawScreen(); // 裏画面のデータを全て削除 GetHitKeyStateAll( keybuf ) ; // すべてのキーの状態を得る if( keybuf[ KEY_INPUT_ESCAPE ] == 1 ) exit(1); // Escapeが押されたら終了 choice(y,str1,str2); /*下キー判定*/ if( keybuf[ KEY_INPUT_DOWN ] == 1 ) // 下キーが押されたら NewDown=1; // 今押されている状態に else // 押されていなかったら NewDown=0; // 今押されていない状態に if( OldDown==0 && NewDown==1 ) // 前回押されてなく、今回押されていたら DownOshita=1; // たった今押された状態に else // それ以外なら DownOshita=0; // たったいま押されていない状態に if( OldDown==1 && NewDown==1 ) // 前回も押され、今回も押されていたら DownPusingCounter++; // 押しっぱなしカウンターを増加 else DownPusingCounter=0; if( DownOshita==1 || DownPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら if(DownPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ DownPusingCounter=27; // オートの場合4回に1回下に下がる。 if(y==260)y=280; else // y座標が280なら(選択が一番下なら) y=260; // 選択座標を一番上に } OldDown=NewDown; /*上キー判定*/ if(keybuf[KEY_INPUT_UP]==1) NewUp=1; else NewUp=0; if(OldUp==0 && NewUp==1) UpOshita=1; else UpOshita=0; if(OldUp==1 && NewUp==1) UpPushingCounter++; else UpPushingCounter=0; if(UpOshita==1 || UpPushingCounter>30){ if(UpPushingCounter>30) UpPushingCounter=27; if(y==280) y=260; else y=280; } OldUp=NewUp; if(keybuf[KEY_INPUT_RETURN]==1 && y==280) ContinueScreen(str1); if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了 ScreenFlip() ; // 裏画面データを表画面へ反映 } }