キー入力でさまざまな画面に進む
タイトル画面、ゲーム画面、クリア画面、リタイア画面をキー入力で切り替えられるようにしました。やっていることは全てタイトル画面からゲーム画面に切り替えることと一緒です。
特に説明は要りませんね。
特に説明は要りませんね。
main.cpp
... void Title(); // タイトルの関数 void Game(); // ゲームの関数 void Clear(); // クリアの関数 void Retire(); // リタイアの関数 int GameState; // ゲームの状態を格納する変数 int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ... while( ProcessMessage()==0 && GetKeyInput(Key)==0 && Key[KEY_INPUT_ESCAPE]==0 && ClearDrawScreen() == 0){ switch( GameState ){ case 0: Title(); // タイトルの関数 break; case 1: Game(); // ゲームの関数 break; case 2: Clear(); // クリアの関数 break; case 3: Retire(); // リタイアの関数 break; } DrawFormatString(10,10,white,"GameState:%d",GameState); ScreenFlip(); } ... return 0 ; } // キーの押下時間を調べる関数 ... // タイトルの関数 ... // ゲームの関数 // 戻り値 なし 引数 なし void Game(){ DrawString(100,200,"ゲーム画面です",white); DrawString(100,220,"Zでクリア画面",white); DrawString(100,240,"Xでリタイア",white); if( Key[KEY_INPUT_Z] == 1 ) // Zキーが押されたらゲームを始める GameState = 2; if( Key[KEY_INPUT_X] == 1 ) // Zキーが押されたらゲームを始める GameState = 3; } // クリアの関数 // 戻り値 なし 引数 なし void Clear(){ DrawString(200,100,"クリア画面です",white); DrawString(200,140,"Zでタイトル",white); if( Key[KEY_INPUT_Z] == 1 ) // Zキーが押されたらゲームを始める GameState = 0; } // リタイアの関数 // 戻り値 なし 引数 なし void Retire(){ DrawString(200,200,"リタイア画面です",white); DrawString(200,240,"Zでタイトル",white); if( Key[KEY_INPUT_Z] == 1 ) // Zキーが押されたらゲームを始める GameState = 0; }