今回つくるゲーム
難易度
今回はスクラッチでマリオパーティの人気ゲーム、ポップコーンキャッチ風ゲームを作っていきます。カップ を頭の上に置いてポップコーンをキャッチして回りますが、これが左右移動だけだととても簡単ですが、3Dで奥行きがでたときにどうやってキャッチするかが今回のポイントとなります。理屈がわかれば他のいろいろなゲームにも使えるテクニックになりますので、ワンランク上のゲームを作れるようになるためにも是非マスターしてください。
まずは実際にゲームをプレイしてみてください。左右上下矢印キーでポップコーンを拾います。隕石に触れるとポップコーンを落としてしまいます。
はじめに
まず、以下をリミックスしてください
こちらにはゲームを作るのに必要な素材がすべて含まれています。
ネコの動きをつくる
ではまずネコの動きを作っていきましょう。上下左右の矢印キーで移動しますが、上に動くということは奥に行くということなので、遠近法で考えて、大きさを小さくしていきます。逆に下に動くということは手前にくるということなので大きさを大きくしていきます。
ネコのコード
ネコのスプライトに以下のコードを書いていきます。
さらに、動いている間のコスチュームを決めていきます。ネコのスプライトに以下のコードを追加します。
影のコード
次にネコの影のコードを書いていきます。
なぜ、ネコとネコの影を別々にしているかというと、今回のゲームではネコの影とポップコーンの影がぶつかることで落下地点に入っているということを判断したいためです。のちほど詳しく解説します。
ネコの影はずっとネコのスプライトにいきます。ネコの影のスプライトに以下のコードを書きます。
実は今回、ネコのコスチュームの中心は足元に設定されています。そのため影のスプライトを「ネコへ行く」とすると足元に設置されるのです。このようにコスチュームの中心をずらすのはよく使うテクニックなので覚えておきましょう。
では実際に動かしてみましょう。以下のように動けば成功です。
ポップコーンを落とす
ポップコーンを落とすところが今回の1つの工夫ポイントです。まず地面に影ができて、その影に向かってポップコーンが落下してくるという仕組みです。今回は”影”でゲームを制御するのがポイントになってきます。
ではこの仕組みに従ってコーン1とコーン1影のスプライトにコードを書いていきます。
コーン1のコード
コーン1のスプライトのコードは以下の通りです
コーン1影のコード
コーン1影のスプライトのコードは以下の通りです。
ではを押してみましょう。以下のように次々とポップコーンが落ちてこれば成功です。
前面・背面の調整
このままでは少し問題があります。先ほどの4個目のポップコーンに注目してください。ネコより手前に落ちてくるはずなのに、ネコの後ろを通って落下しています。
これを解消するために、ポップコーンのコードに以下のように「前面背面判断」のブロックを追加します。
ポップコーンをキャッチする
では次にポップコーンをキャッチしていきましょう。
ポップコーンのキャッチを判断するのは影です。ネコの影がポップコーンの影に触れればキャッチとなります。それはつまり落下点に入ったということになるからです。
時間制限をつける
キャッチのコードを書く前にゲームに時間制限をつけていきます。
ステージのコードに以下のコードを書きます。
そして、時間とキャッチの変数にチェックを入れて所定の場所に設置します。設置するときは大きな表示にするようにしましょう。
ネコの影のコード
ネコの影のスプライトに以下のコードを書き、影1踏んでるという変数を作り、落下地点に入っているのか入っていないのかを判定していきます。
コーン1のコード
コーン1のコードに以下のようにポップコーンキャッチの定義を追加していきます。
キャッチできれば、コーンが消えて新しい影が現れます。
では、実際にプレイしてみましょう。以下のようにコーンをキャッチできれば成功です。
ポップコーンを増やす
ゲームを楽しくするために空から降ってくるポップコーンの数を増やしましょう。
コーン2/コーン影2
コーン3/コーン影3
のスプライトが用意されていますので、コーン1/コーン影1のコードをコピーしていきます。
矢印の部分が1つ目のポップコーンから変化したポイントです。
コーン2のコード
コーン影2のコード
コーン3のコード
コーン影3のコード
では、ゲームをプレイしてみましょう。次のようにどんどんポップコーンが降ってこれば成功です。
隕石を落とす
最後に隕石を落としていきます。
基本的にはポップコーンと同じ考え方ですが、岩石はポップコーンより落ちてくるまでに時間がかかります。またネコにあたると、ネコがキャッチしたポップコーンの数が半分になってしまうようになります。
隕石のコード
隕石の影のコード
以下のように動けば成功です。
すべてのコード
これで全てのプログラミングが終了です、全てのコードは以下から確認できます。