にしのクエスト2

情報処理技術者試験と資格学校講師の日常

20221224103753

Unityで学ぶプログラミング  テトリス的を作る(12)ゲームオーバーの判定

こんにちは!

テトリス的なものを作っていきます。長い連載になります
で、気長にお付き合いください。

なお、プログラムの内容は難しいので、初心者には向きませ
ん。いきなり作るのは厳しいのでよろしくお願いします。
また、説明も大幅に省いていきます。

最後に注意事項
ご紹介するのはあくまで「テトリス的」です。そのものでは
ありませんし、非常にシンプルに遊べるだけのものです。

連載終了後に、より詳しい技術的な解説&追加機能を加えた
電子書籍を発行する予定ですので、よろしくお願いします。


今回はゲームオーバーの判定です!
短いです。とりあえず、上まで積み上がったらゲームオーバーで
プログラムが終わるようにします(本当はリプレイ?とかあるんでしょうが)

まずは変数を追加します。

//gameOverの判定
int gameOverFlag=0;

ゲームオーバーかどうかは、makeBlk()の段階で判定します。

//フィールドにブロックを加える
for(i=0;i<4;i++){
for(j=0;j<4;j++){
field[i+5,j]=stage[i+5,j]+blk[i,j];

// //ゲームオーバーかどうかチェックする
if(field[i+x,j+y+4]>=1){
gameOverFlag=1;
}
}
}
}

update内でフラグが立っていれば終了ということにします。

void Update()
{
//GameOverの処理
if(gameOverFlag==1){
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}

この終了のやり方は、割とどこでも使えるのでおすすめです。

次回は、得点の表示!残すところ数回です!

 

f:id:koharuwest:20210117110657p:plain


それではよきプログラミングライフを!
またね。