今回つくるゲーム
難易度
まずはゲームをプレイしてみましょう。
素材をつくる
まずはゲームに使う素材をつくります。今回つくる素材は「プレイヤー」、「ゴミ」、「宇宙空間」の3種類です。
それぞれのスプライトを作成し、コスチュームを描いていきます。
素材を一からつくるのが大変だという人は、以下のプロジェクトをリミックスするかコピー、ダウンロードして使ってください。時間の限られたワークショップなどでは、はじめから素材が用意されている状態ではじめると良いでしょう。
宇宙ゴミを回収せよ!(素材)
プレイヤーについては好きなキャラクターのコスチュームを1つ用意しましょう。ゴミは今回は、6種類のゴミと岩、合計7つのコスチュームを用意しました。
宇宙空間は一見コスチュームは何もないように見えますが下右図のように後ろ側に色を引くと白い粒がたくさんあるのがわかります。(描く時には端の方にかためておくのがおすすめです。)
プレイヤーを動かせるようにしよう
まずは、プレイヤーを動かせるようにします。以下のようにプレイヤーのスプライトにコードを書きましょう。
これでマウスの方にプレイヤーが動くようになりました。
ゴミや岩が奥から飛んでくるようにしよう
では、次にゴミや岩が宇宙の奥から飛んでくるようにします。ゴミのスプライトにに以下のようにコードを書きましょう。
近づく速さの変数を作るときには、「このスプライトのみ」にチェックを入れるようにします。ひとつひとつのクローンの近づく速さを管理するためです。これも上級の領域ですね!
旗を押してみましょう。次々と岩が手前に向かって飛んできているように見えますね。
0.5秒ごとにクローンが作られて、画面の中央から、だんだん大きくなりながら近づいてきます。また、近づくにつれてスピードが速くなります。
3D空間では遠くにあるものは小さく、スピードも遅く感じます。そして近づけば近づくほど大きくなり、スピードも速くなります。これでなんちゃって3Dゲームができてしまいます。
次に、よりランダムに迫ってくるように、クローンを作る間隔と、スタート位置をランダムにします。
これで旗を押してみてください。ランダムにすると、クオリティがあがりますね!
ゴミと岩を半々の確率で出すようにする
ここまでは岩だけが飛んできましたが、ここからはゴミと岩が半々の確率で出すようにしましょう。岩のコスチュームを増やして、乱数を使うことによって半々で出すこともできますが、ここは上級なのでもうすこしスマートな方法でコードを書いていきます。
クローンされた時のコードに以下のように追加します。「ゴミか岩か」という変数を作り、それを1〜2の乱数にして、1ならゴミ、2なら岩というようにします。岩を増やしたければたとえば1〜3の乱数にすると、岩が出てくる確率は2/3になります。
ゴミのキャッチと岩にぶつかる判定をしよう
つぎに飛んでくるゴミをキャッチしたり、岩にぶつかったりする、という判定を作っていきます。
ただ触れただけだとすごく遠くにいる状態のゴミに触れてもキャッチしてしまうことになるので、触れた時に大きさが100より大きいという条件を入れるようにしましょう。
コードが長くなりすぎる時は定義を使って、その部分を外に書くとコードがわかりやすくなります!
得点を計算する
次に得点の計算です。今回は、以下のようにキャッチしたときの得点を決めたいと思います。
ビニール 5点
スナック袋 5点
カップ麺 5点
生ごみ 5点
ロボット 10点
ロケット 20点
岩 -5点
そのためには、どういうコードを書くでしょうか?みなさんはこんなコードを想像するのではないでしょうか?
もちろんこれでも間違いではありません、しかしもっとスマートなコードの書き方があります。それはリストを使ったスコアの計算です。以下のように「得点リスト」というリストを作成します。そしてそれぞれのコスチューム番号に応じた得点をリストに記載します。
そうすることで先程のコードはこのようにスマートになります。
これができれば、もう上級者の仲間入りです。
旗が押されたときにスコアを0に戻しておくのも忘れないようにしましょう
ゴミのスプライトのすべてのコードはこのようになります。
宇宙空間を作る
これでほぼゲームは完成なのですが、さらに完成度をあげるために岩やゴミだけでなく、白い光が飛んでくることによって宇宙空間の感じを演出していきます。宇宙空間のスプライトに以下のコードを書いてください。
制限時間とBGM
制限時間とBGMのコードはステージ(背景)のコードに書くようにしましょう。これは上級を目指している人にとっては簡単ですね!
すべてのコード
これで完成です。おつかれさまでした!このくらいのコードで3Dゲームがつくれるからおもしろいですよね。ぜひ今回作ったコードを参考にしてオリジナルの3Dゲームを作ってみてください。
完成コードはこちらから確認できます。
コメント