この記事のポイント
タイムアップとゲームオーバのつくり方を説明します。
はじめに ゲーム性向上のためにゲームオーバー条件を追加する
前回までの記事で、他の車を道路上に走らせ、他の車と衝突した場合には、衝突したエフェクトを表示させるようにしました。
ここまでゲーム性は向上させることができましたが、やはりゲームオーバー条件とゲームクリア条件がないとゲームは盛り上がりません。
今回の記事では、ゲームオーバー条件として車のガソリン切れを追加していきます。
また、単純にガソリンが切れてしまうだけでは面白くないので、ガソリン給油イベントを追加して、航続距離を伸ばせるイベントも仕込みます。
前回の記事
前回は他の車を道路に走らせて、さらに衝突した場合にクラッシュのエフェクトを表示させるようにしました。
レースゲームシリーズの最初から始めたい方は以下の記事を参考にしてください。
スクラッチをゼロから始めたい方は以下の記事を参考にしてください。誰でも簡単にスクラッチが始めることができます。
完成作品
完成作品は以下のようになります。いつもの通り緑色の旗の実行ボタンでゲーム開始できます。※今回から音が出るようになったので注意してください。
ゲームのルールは以下です。
- ←キー:車を左に移動させます。
- →キー:車を右に移動させます。
- ガソリンマークに触れるとガソリンメータが回復します。
- ガソリンメータが0になるとゲームオーバです。
完成プログラム
今回はガソリンマークと、ガソリンメータと、給油所をスプライトとして追加しています。
ガソリンマークのプログラム:主に時間とともにガソリンを減らしていきます。
ガソリンメータのプログラム:ガソリン残量を視覚的に表示します。
給油所のプログラム:ランダムで給油所を出現させます。
自分の車のプログラム:給油所にふれたときにガソリンメータを回復させるプログラムを追加します。
仕様(作るもの)を考える
毎回のことですが、まずはプログラムを始める前にどういったもの(仕様)を作るのかをざっくりでよいので考えておきましょう。
今回作りたいものは、以下の通りです。
- ガソリンメータが時間とともに減っていくようにする。
- ガソリンメータがゼロになったときにプログラムを終了させる。
- 道路上の給与マークに触れるとガソリンメータが回復する。
事前準備
今回はガソリンマークとガソリンメータを準備したいと思います。
ガソリンマークは、フリー画像集のillustACさんから取得させていただきます。
ガソリンメータは、パワーポイント等で自作します。以下のように0~15が点灯しているメータ画像を用意して、ガソリン残量に応じて画像を切り替えていきます。
ゲームで動きをつけるためには、基本的に動きの画像をたくさん用意しなければいけません。
これがけっこう大変ですね。
プログラミング
では、プログラミングをしていきます。
ガソリン変数をつくる
まずはガソリンの残量を表すガソリン変数をつくります。変数の詳しい作り方は以下記事を参考にしてください。
今回は、すべてのスプライトでこの変数を使えるようにしたいので、「すべてのスプライト用」で作成します。
次にガソリンマークのスプライトを追加して、ガソリンが減っていくようにプログラムしましょう。ガソリンマークは画面左上に配置しましょう。
プログラムは以下の動きができるように作成します。
- 初期化でガソリンを15に設定する。
- ガソリンが0になる(=1未満になる)まで、2秒ごとにガソリンを1づつ減らす。
- ガソリンが0になったら、すべてのスプライトの動きを止める(=ゲームオーバー)
ガソリンの減る速さは一度動かしてから調節してみましょう。
例えば、1秒に1減るようにすると即ゲームオーバーになってしまって楽しくありません。
ガソリンメータをつくる
つぎにガソリンメータを作って、ガソリン減っていくのを視覚的に確認できるようにします。
パワーポイントで作成したガソリンメータをスプライトとして登録します。さらに、ガソリン残量0~15の画像をコスチュームとして登録します。
このコスチューム登録のときの重要ポイントは、ガソリン残量が少ない順番に並べるということです。
なぜこのようなことをするかと言うと、登録されたコスチュームの左上に数字がついていることがわかると思います。実は、コスチュームはこの数字でも選択できるのです。
このことを利用すると、以下のようなプログラムを組むことで、ガソリン変数が1減るごとにガソリンメータを1づつ減らしていくことができます。
「ガソリン + 1」としているのは、ガソリンメータは「0」から始まるのに対して、コスチューム番号は「1」から始まるためその調整をしています。
このコスチュームを数字で指定する方法はゲームでよく使いますのでマスターしておいてください!
ここで一旦を動きを確認してみましょう。ガソリンメータが2秒ごとに1つずつ減っていっているのがわかると思います。
2秒に1メータ減っていく車とはなかなか燃費が良くないですね・・・。
給油をつくる
つぎに給油イベントをつくります。このままでは、ガソリンがずっと減っていくだけになってしまいゲームとしては面白くありません。
以下のような動きをするプログラムを組んでいこうと思います。
- 給油マークが左側車線から現れて近づいてくる。
- 給油マークに自分の車が触れるとガソリンメータが+2回復する。
給油マークが左側車線から現れて近づいてくる
給油マークはガソリンマークを使います。新しくスプライトとして登録してください。
給油マークが左車線から現れて・近づいてくるようにするのは、これまでに作った左車線用の車のプログラムがそのまま使えます。左車線用の車のプログラムをすべてコピーして給油スプライトに張り付けてください。
給油の出現はレア度を高めたいので、出現頻度を「〇秒待つ」を調整します。
給油マークに自分の車が触れるとガソリンメータが+2回復する
つぎに、自分の車が給油マークに触れたらガソリンが+2されるプログラムを追加します。
自分の車のプログラムに以下のプログラムを追加します。
ポイントは、一度給油マークに触れたら、2秒待つようにしましょう。そうしないと、自分の車が給油マークに触れている限りガソリンメータがドンドン上昇していってしまいます。
実際の開発でもよくミスしがちなポイントです。
だいたいはプログラムを動かしてから気づくことが多いです。
処理をわざと待って、連続ヒットを避けることをポーリングと呼んだりします。
これでプログラムを動かしてみましょう。給油マークに触れるとガソリンメータが回復するのが確認できると思います。
音を追加する
給油がされたタイミングがイマイチわかりづらいので、給油されたタイミングで音が鳴るようにしてみます。
「音カテゴリー」>「終わるまで〇の音を鳴らす」をプログラムに追加します。
音は「Water Drop」を使用します。
さらに、車が走っているときも軽快な音楽を流していきたいと思います。
ガソリンマークのスプライトに戻って、プログラムの中の「2秒待つ」ブロックを「終わるまで〇の音を鳴らす」に入れ替えます。
音は「Drive Around」を選択します。
この「Drive Around」は音の再生がちょうど2秒なので、「2秒待つ」ブロックの動きも兼ねてくれます。
今回はこれで完了です。お疲れさまでした!
さいごに
今回はガソリンメータと給油イベントを追加して、さらにゲーム性を向上させました。
ガソリンの減り具合や給油の出現頻度を自分で調整して難易度を変えるのも自作ゲームの楽しみ方の1つです。ぜひ挑戦してみてください。
次回
次回はゲームクリア条件を追加して、ゲームクリアしたら画面に「ゲームクリア」を表示させるようにします。ぜひチャレンジしてみてください。
コメント