この記事のポイント
ライフポイント、スコア要素、ゲームクリア・オーバー条件を追加する方法を説明します。
はじめに ゲームクリアとゲームオーバーを追加したい
シューティングゲームを作ろう編もいよいよ大詰めです。ゲームのハラハラ感を高めるためには、ライフとスコア要素が重要です。
今回は、ライフとスコアとそれを元にしたゲームクリア、ゲームオーバー条件を追加します。
参考記事
前回記事
前回は、敵キャラを出現させて、倒せるようにプログラミングしました。今回の記事は前回記事のプログラムを流用しますので、前回記事を参照してください。
シューティングゲームを作ろうシリーズ 第1回
シューティングゲームを作ろうシリーズを最初から始めたい方は以下記事を参照してください。
スクラッチの始め方
スクラッチをイチから始めたい方は以下記事を参照してください。
完成作品
完成作品はこのようになります。ルールは以下のとおりです。
- ライフゲージがなくなったらゲームオーバーです。ライフゲージは敵に3回接触するとゼロになります。
- 敵キャラを10体倒すとゲームクリアです。
完成プログラム
新規追加スプライト
<ライフ>
ライフポイントを視覚化します。
<リンゴ>
回復アイテムです。右から左へ動きます。
<ゲームクリア>
ゲームクリアを表示させます。
<ゲームオーバー>
ゲームオーバーを表示させます。
修正スプライト
<ろぼてく>
ろぼてくのライフの管理をします。
<敵キャラ>
敵キャラを倒したときにスコアを増やすように修正しています。
作るモノ(仕様)を考える
プログラミングを始める前にザクっと今回作るモノとその動きを考えます。
- 敵キャラに触れたらライフを1減らす。
- リンゴに触れたらライフを1増やす。
- ライフはライフゲージで見れるようにする。
- ライフが0になったら、ゲームオーバーにする。
- 敵キャラを倒したらスコア1増やす。
- 敵キャラを10体倒したら、ゲームクリアにする。
事前準備
今回新たに使うスプライトを用意します。
ライフ
ライフはコスチュームエディタで自作します。赤色と白色の長方形を組み合わせて、ライフの残量を表現しましょう。
ライフ残量は0~3で作成してください。そして、ポイントですが、ライフ残量が少ない順番で並べてください。
リンゴ
これは元々スクラッチで用意されている「Apple」を使います。
ゲームクリア、ゲームオーバー
こちらもコスチュームエディタで作ります。元々スクラッチで用意されている文字のスプライトを組み合わせて作ります。
プログラミング
敵キャラに触れたらライフを減らす
まずは「ライフ」変数を作ります。「すべてのスプライト用」として作ります。
「ろぼてく」が敵キャラに触れたらライフを減らすようにするので、ろぼてくスプライトでライフを管理するプログラムを作ります。ポイントとしては以下です。
- 敵キャラ:Goboに触れた後、1秒待つ。
①敵キャラに触れた後、「1秒待つ」を入れる理由は、敵キャラに触れている間ずっとライフが減ってしまい、体と触れただけでライフが0になってしまうバグが発生するためです。
ライフを表示させる
「ライフ」を表示プログラムを以下のように組みます。
ポイントは。以下です。
- コスチュームを「ライフ+1」の変数で指定する
これはコスチュームを数字で指定するためです。詳細は以下の記事の「ガソリンメータをつくる」を参照してください。
リンゴを出現させる
リンゴを出現させて、右から左に移動させます。このプログラムはGoboのプログラムを流用することができます。リンゴの出現頻度は敵キャラより低くしたいので、待つ秒数を敵キャラより大きくします。
リンゴに触れたらライフを回復させる
ろぼてくがリンゴにふれたらライフを回復させるようにします。
以下のようにプログラムを組みます。
ポイントは以下2点です。
- ライフが3未満のとき(ライフが満タンでないとき)だけライフを1増やす。
- ライフを増やした後、1秒待つ。
①の理由は、ライフがもし3のときにライフを増やしてしまうと、ライフが4となってしまい、コスチュームがおかしくなってしまうためです。
②の理由は、敵キャラに触れた場合と同じ理由です。
敵キャラを倒したらスコアを増やす
敵キャラを倒したらスコアを増やしていくようにします。
「スコア」は「すべてのスプライト用」の変数として作ります。またチェックボックスにチェックを入れてステージ上にスコアが確認できるようにします。
スコアを増やすのは、「敵キャラ」スプライトが「弾」スプライトに触れて倒されるときなので、「敵キャラ」スプライトのプログラムに追加しましょう。
ライフが0になったら、ゲームオーバーにする
以下のようにプログラムを考えます。
- 最初に「GAME OVER」の文字を隠しておく。
- ライフが0になったら、
- 「GAME OVER」の文字を最前面にして、
- 隠す⇨表示するにする。
- すべてを止める。
スコアが10になったら、ゲームクリアにする
ゲームクリアのプログラムの方法も、ゲームオーバーを流用できます。
スプライトを表示させる条件を「スコア>9」にすればよいです。
動作確認
さいごに動作確認をします。
リンゴに触れるとライフが回復して、10体目の敵を倒すとスコアが10になって、「GAME CLEAR」の文字が表示されます。
さいごに
敵キャラを倒してゲームクリアする条件と、ライフポイントによってゲームオーバーになる条件を追加しました。ライフポイントやクリア条件を変更することでゲームの難易度を調整することができます。ぜひチャレンジしてみてください。
次回
次回はついにボスキャラを登場させます!ぜひチャレンジしてみくてください。
コメント