【Scratchで簡単なゲーム作成編⑦】ゲーム終了画面を実装する
※ 当ページには【広告/PR】を含む場合があります。
2020/10/19
ゲームオーバーやエンディングなどの演出を機能として盛り込みたい場合、画面やゲームステージと違って走っているプログラムを止めることになります。
今回はゲームの終わらせ方をどう組み込むのか具体的なコーディング例をみて考えていきます。
ちなみに、今回の内容での
エンディング画面を作る
ゲームプログラムが走っている途中でゲームを終了する際には、
すべてを止める
よって、ゲーム終了自体はこのブロックを使うだけですので、とても単純なことです。
まず初めに終了条件を考えて、設定しなくてはいけません。
例えば得点がある一定値以上になったときにエンディング画面になるようにしてみます。 ゲームエンドの条件は以下に設定します。
ゲームエンドの条件:
スコアが100,000に達したとき
今回のプログラムは
ゲームの終了条件を、スプライトのどれか一つに持たせる必要があります。 このゲームでいえば、ゲーム中ずっと走っている
たこ
スコア
スコア
以下の図のように、初期化処理(
🚩が押されたとき
スコア > 99999
エンディング

次にエンディング用の背景を追加します。 今回は演出など凝った工夫などは行いませんので無背景とします。 背景の名前は
エンド

簡単に
おわり
おわり

このスプライトは他のスクリプトからクローンされた場合に表示され、下から上にスーッと流れるようになります。
先程作った背景に戻って、背景のコードに以下を追加します。

スコア
エンディング
エンド
おわり
これだけだと、ゲーム中に止められたスクリプトは止まるのですが、スプライトは表示されたままになるので、エンディング画面に表示されては困るスプライトは
エンディング
隠す
このクローンを削除する
よって各関連スプライトにエンディングでは表示しない処理を以下のように施します。

これで簡単なエンディングを作ることができました。
ゲームオーバーの状態を作る
もう一つの終了状態としてゲームオーバーの機能も追加してみます。
先ほどのゲームクリア条件とは別に、たこの体力ゲージを作成し、食べ物が食べられない時間が長いとお腹が空いて体力がだんだん下がっていくような機能をつけてみます。
ということで、ゲームオーバーの条件としては
たこの体力がゼロになったらゲームオーバー
ということで以降でプログラミングしてみます。
体力ゲージの作成
たこの体力を表すゲージをスプライトで作っていきます。
以下のように
たいりょく
わく
たいりょく

またこのスプライトではたこの体力を管理するために、新しく以下の3つの変数を追加します。
+ グローバル変数: たいりょく
たこの体力を数値化したもの。
0 ~ 10までの数
- ローカル変数: ばんごう_
クローンの識別番号。
10個のクローンで体力ゲージを作る。
- ローカル変数: たいりょくへんか_
食べ物を食べたときに回復させる場合に使うフラグ。
0で何もしない状態、1になったとき体力を1増やす。
では体力ゲージのブロックコード実装例は以下の図のようになります。

ポイントだけかいつまむと、まず図の①ではゲームスタート時の初期化処理になります。
先ほど挙げた3つの変数の初期値を与え、ゲージを表示させる座標にくるようにコスチュームを
わく
②ではコスチュームを
たいりょく
たいりょく
なお、クローンの識別番号
ばんごう_
次に図の③の箇所ですが、ここがゲームオーバーかどうかを判断させる処理になっています。
今回はタイマーで5秒たったら、体力が1ずつ減っていきます。 ゼロになった時点でゲームオーバーです。
ただし、食べ物を食べることで体力は1ずつ回復しますので、ゲームオーバーにならないようにするためには食べ物を与え続ける必要があります。
タイマーの使い方に関しては、
最後に④の箇所で、
ゲームオーバー
この
たいりょく

上の内容で述べたように、エンディングやゲームオーバーのときには全て隠れるようにしています。
また、
たべた○
たいりょくへんか_
ゲームオーバー時の非表示処理
ゲームオーバーの時に画面に表示されたまま残ってしまわないように、
ゲームオーバー

おわりスプライト
エンディング用の
おわり
ゲームオーバー

コスチュームを追加しただけではプログラムが
エンディング
ゲームオーバー
終了処理の区別のためにローカル変数
おわりかた_

これでこのゲームにエンディングとゲームオーバーの2つの機能を実装できたことになります。
まとめ
今回は、ゲームの終わらせ方を実際の例を見ながら解説しました。
やはりエンディングやゲームオーバーがあることで、より一層ゲームらしくなったと思います。