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

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

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

Processing 入門

13.みどりを救え5 (完) リトライ

 

今回は [ みどりを救え4 スコアとゲームオーバー ] の続きです。

「みどりを救え」ゲームも今回で終了です。
むずかしかったですか、それとも簡単でしたか?
この講座では「作成途中の段階を見せていこう」と思っています。
経験がなくても階段をのぼるように1段ずつ進めば、それなりに作っていけることを
感じて欲しいからです。
目標とするゲーム全体をイメージすると「作るの無理」と思うかもしれませんが
「ゲームの一部分」をだけをみれば、実現する方法が見えやすくなるはずです。
やらないといつまでもスキルが身に付きません。
できることからコツコツとやりましょう。

 

 

ゲームの初期化を関数にしよう

リトライの機能を付ける前に、ゲームを初期化する関数 gameInit () を作ります。
今まで初期化はすべて setup () の中に入れてました。
その中からゲームに関するものだけ gameInit () の中に移動します。

 

ゲームの初期化を関数にする

 

これでリトライの処理も簡単にできます。

このタイミングで gameInit () を作りましたが、私がゲームを作るとき
gameInit, gamePlay, gameOver
などは初めに作ってしまいます。
必ず使うものですから・・・

 

 

リトライの機能を入れよう

ゲームオーバー画面でマウスをクリックしたとき、リトライするようにします。

 

リトライさせる

 

関数 mousePressed () はクリックしたときに呼ばれます。
setup () や draw () のように Processing で使い方が決められている関数です。

いつクリックしてもリトライするのは困るので、ゲームオーバーのときだけにします。
gseq == 1 のときです。

 

 

実行してみましょう。
ゲームオーバー画面でクリックして、リトライすることを確認してください。

 

ゲームオーバー画面でクリックするとリトライ

 

 

リトライの表示をしよう

ここでクリックすればリトライすることを知らせるメッセージを表示します。
「Click to retry!」
こんな感じです。

ただ表示するだけでなく、点滅させます。
注目させたいときによく使う方法です。
拡縮させたりするのも良い手です。

 

リトライの表示方法

 

点滅させるために変数 mcnt を用意しました。
そして1フレームごとに加算します。(107行目)
108行目の次を見てください。
( mcnt % 60 )
これは%を使って割った余りを算出しています。
この計算では、算出された余りは 0 から 59 までの数となります。
これに条件式で 40 より少ないか判定しています。
つまり 40 より小さいときにメッセージを表示して
40 以上のときは表示しません。

ちなみにパーセントは5のキーあたりにあります。

 

キーボード上のパーセントの場所

 

 

それでは実行させましょう。
リトライメッセージが点滅したらOKです。

 

リトライメッセージを点滅させる

 

 

全ソースコード

[ みどりを救えゲーム ソースコード ]

 

 

改造しよう

「みどりを救えゲーム」はこれで完成です。
お疲れさまでした。
演出を入れたり、もっと体裁を作ろうとするとすごいボリュームになるので
今回はしませんでした。
この Processing 入門の、初めてのゲームなのでこんな感じかと。

さて、プログラミングできるようになるかはここからが大切です。
他人の作ったプログラムを入力しているだけでは身に付きません
自分で考えることが必要なんです。
だから、どんどんプログラミングしましょう。

 

これからすぐに別のプログラムを作る予定がない人は
今回のプログラムを改造してみてはどうでしょうか。
ちょっと例を考えてみました。

・リトライメッセージを点滅させずに、色が変わるようにする
・「GAME OVER」表示を拡縮させる
・タイトル表示を入れる(ゲームオーバー画面と同じ仕組みで)
・スコアが増えたら、落下速度を少し上げる
・違う色の四角を落下させる(HP回復などの特性を持たせる)

改造の案を自分で考えるのも楽しいです。
チャレンジしてみて下さい。

 

なお、改造するときはプログラムの名前を別にして(保存して)
行うのがいいかもしれません。
プログラムを改造したらバグ(不具合)が発生して、もとに戻せなくなった・・・
とかよくあることなので。