初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Processing 入門

26.潜水艦7(完) スコアとタイトル

 

今回は「潜水艦6 水柱とゲームオーバー」の続きです。

潜水艦の撃破ゲームも今回で終了です。
難しいところもあったと思います。そんな部分も慣れてくれば
簡単に作れるようになります。
どんどんプログラミングしましょう。

 

 

敵の爆弾を止めよう

ゲームオーバーになった後も、敵の爆弾が発生し続けます。
これは変なので止めます。

 

敵の爆弾をゲームオーバー時には出さない

 

変数 gseq を確認すれば、ゲーム中かゲームオーバーなのか分かるので
これを利用します。
ゲーム中のみ爆弾を発射するようにします。(148 から 150 行目)

 

変更したら実行して爆弾が止まるか確認しましょう。

 

 

スコアを入れよう

スコアを入れましょう。
一隻爆破するごとに 100 点の得点とします。

 

スコアの表示をする

 

スコアの加算は、潜水艦と爆弾の当たり判定のところで行います。(140 行目)

スコアの表示 scoreDisp を呼び出すタイミングは、表示優先を高くするため
一番最後にします。(68 行目と 75 行目)

 

 

実行して、爆破のタイミングでスコアが加算されていくか確認しましょう。

 

スコアを表示する

 

 

タイトル画面を作ろう

タイトル画面を作ります。
と言っても画像を1枚表示して、なにかのキーが押されたらゲームを開始するように
するだけです。

 

タイトル画面を作る

 

画像に関する処理は 1 行目、59 行目、 102 行目の3箇所です。

58 行目、行を削除せずコメントにして残している理由ですが、
それはいつでもプレイテストできるようにするためです。
テストのたびにタイトルの表示があったら面倒ですよね。
そんなときは、コメントを外すだけですぐにプレイできるようになります。

61 行目、変数 mcnt が 60 以上か調べています。
これは何もさせない待ち時間を作るためです。
タイトルに限らず、画面を切り替えるところで入れることをおすすめします。
切り替わった画面を見せることも大切なことです。

216 行目、変数 mcnt をここでも調べています。
表示(61 行目以降)とキーの受付を同期させるためです。

218 行目、変数 mcnt は他の場面でも使っているので初期化します。

 

 

実行して、タイトルからゲームプレイへ移るかを確認しましょう。

 

タイトル画面を表示する

 

 

リトライを入れよう

ゲームオーバーになった後、なにかキーを押すことでタイトルへ戻る
リトライ機能を入れましょう。

 

リトライを入れる

 

表示や点滅の方法は、タイトルのときと同じです。
待ち時間を 120 としているのは、GAME OVER をしっかり見てもらうためです。
91 行目と 221 行目で同期させています。

今までしっかりと初期化処理 gameInit を作ってきたので、
リトライさせるのは簡単です。
ゲームオーバー中にキーが押されたら gameInit を呼ぶだけで OK です。

 

 

ゲームオーバーでキーを押したら、タイトルに戻るか確認しましょう。

 

リトライ機能を付ける

 

 

全ソースコード

[ 潜水艦を撃破するゲームを作ろう ]

 

 

改造しよう

「 潜水艦を撃破するゲーム 」はこれで完成です。
お疲れさまでした。
画像を使ったプログラムで、それなりに大きくなりましたね。
しかし内容をみると、プレイヤーの爆弾、敵本体、敵の爆弾と
これらは同じような仕組みで動いています。
この仕組みさえ覚えてしまえば、色々な場面で使えると思います。

 

さて毎回、同じことを言いますがプログラミングは続けないと身に付きません。
新しい課題を探すか、今回の課題を改造してみてください。
改造の例を挙げておきます。

・ハイスコアの表示を行う
・深い位置にいる潜水艦ほどスコアを高くする
・高速で移動する特別な潜水艦を時々出す
・1発では沈まない耐久力のある潜水艦(拡大表示)を出す
・時間が経つにつれ、敵や爆弾の量を多くする
・時々、フォーメーションを組んだ複数の潜水艦を出現させる

などなど、挑戦してみてください。