しかし、次のページに移動するボタンと、元のページに戻るボタンを同じボタンに設定してしまうと
進む→戻るが少しキーを押しただけで、何度か連続で入力されてしまうようになります。
これが原因で、選択肢を作っても、キーを軽く押しただけで3つ先の選択肢まで飛んだりしてしまいます。
解決策をお願いします。
ソース。
#include "DxLib.h" int function_status=0,White; char KeyBuf[ 256 ] ; void A(){ DrawString(100,100,"選択肢A",White); DrawString(300,100,"選択肢B",White); if(KeyBuf[KEY_INPUT_A]==1) function_status=1; else if (KeyBuf[KEY_INPUT_B]==1) function_status=2; } void B(){ DrawString(100,100,"選択肢C",White); DrawString(300,100,"選択肢D",White); if(KeyBuf[KEY_INPUT_A]==1) function_status=0; else if(KeyBuf[KEY_INPUT_B]==1) function_status=2; } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更 if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了 White = GetColor( 255 , 255 , 255 ) ; //色の取得 SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定 while( 1 ){ ClearDrawScreen(); // 裏画面のデータを全て削除 GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る switch(function_status){ case 0: A(); break; case 1: B(); break; default: DxLib_End() ; // DXライブラリ使用の終了処理 return 0; break; } if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了 ScreenFlip() ; // 裏画面データを表画面へ反映 } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }