キー入力でさまざまな画面に進む
タイトル画面、ゲーム画面、クリア画面、リタイア画面をキー入力で切り替えられるようにしました。やっていることは全てタイトル画面からゲーム画面に切り替えることと一緒です。
特に説明は要りませんね。
特に説明は要りませんね。
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;
}