前回の でんでんジャンプを作ろう のつづきです。
子供向けのプログラミング教育でとても人気のある Scratch(スクラッチ)を知っていますか?
もし未経験なら一度やってみてください。
オブジェクト単位(スプライト単位)でプログラミングしていくオブジェクト指向型の言語なので初めは戸惑うかもしれません。
でも、プログラミングの考え方(組み立て方)を広げてくれます。
リンゴを落とそう
一定の間隔でリンゴを発生させます。
ゲーム から ゲームが更新された時500ミリ秒毎 を持ってきます。

画面の上からリンゴを落としたいので発射体を使います。
下図のブロックを用意します。

絵はリンゴを選びます。
真下に落下させるので、速度 vx 0 vy 60 にセットします。
60 という数は作成後に遊びながら決めました。大きい数にすればゲームが難しくなります。

まだ座標を入力していないため、画面の左端にリンゴが落下します。

変数の名前を変更しましょう。
projectile では何者なのか分かりません。

変数名を apple にします。

画面いっぱいにリンゴを降らせたいので x 座標をランダムにします。
スプライト から mySpriteのxを0にする を持ってきます。
変数名を apple に変更します。

計算 から ランダムな数字を選択: 0から10まで を持ってきます。

ランダムな数字を 20 から 140 までに変更します。
画面の幅は 160 です。リンゴが見切れないように左右 20 ほど短くします。

落下間隔を 2000 ミリ秒毎(2秒毎)にします。
この間隔も作成後にテストプレイしながら決めました。

実行して画面幅いっぱいにリンゴが落下することを確認しましょう。
リンゴとプレイヤーの当たり判定を入れよう
プレイヤーがリンゴを取れるように当たり判定を入れます。
まず、リンゴのタイプを設定します。
スプライト から mySpriteをPlayerタイプにする を持ってきます。

変数名を apple に、タイプを Food に変更します。

スプライト から当たり判定(重なり)を持ってきます。
otherSprite のタイプを Food に変更します。
これでプレイヤーと Food(リンゴ)の当たり判定ができます。

プレイヤーとリンゴが当たったとき、リンゴを消します。
スプライト から destroy mySprite を持ってきます。
削除対象を otherSprite に変更します。

ついでに得点も入れます。
情報 から スコアを1変える を追加します。
これでプレイヤーとリンゴが当たったとき、リンゴは消えてスコアに +1 されます。

リンゴをコインに変えてみよう
ちょっと新しいことにチャレンジしてみましょう。
プレイヤーがリンゴを取ったとき、リンゴをコインの絵に変えてみます。
スプライト から mySpriteの画像を○にする を持ってきます。

当たり判定の中に入れて otherSprite に変更します。
画像はコインの絵に変更しましょう。

このままでは絵はすぐに消えてしまいます。
destroy のパラメータを with プルアッププルダウンなしに effect
for 300 ms に変更します。
これで演出無しで 300 ミリ秒後(0.3秒後)にコインは消えます。

他のゲームでよく見かける「コインが上に移動して消える」演出を入れます。
スプライト から mySpriteのxを0にする を持ってきます。
otherSprite の vy(速度 y)
を -20 に変更します。

テストしましょう。
リンゴを取ったらコインに変わって上に移動することを確認します。

今回、リンゴをコインに変えましたが +100 みたいな表示の方が一般的かもしれませんね。 そのようなときは絵をギャラリーから選ばす、自分で +100 という絵を描けばいいのです。 あ、スコアに加算する数も 100 にする必要があります。
ヘビを出現させよう
つぎはヘビを出現させましょう。
ゲーム から ゲームが更新された時500ミリ秒毎 を持ってきます。

リンゴの時と同じように発射体を使います。
絵は下図のヘビを使いました。

発射体の変数の名前を変更します。

変数名を snake にしました。

ゲームの更新は 2000 ミリ秒毎、
速度 vx -50 vy 0 に変更します。
これで画面の右端から左へ移動します。

ヘビの出現位置(座標)を決めます。
スプライト から mySpriteのxを0にする を持ってきます。
変数名を snake に変更して
Y を 100 にします。

当たり判定のためタイプを設定します。
スプライト から mySpriteをPlayerタイプにする を持ってきます。
変数名を snake に変更して Enemy タイプにします。

テストしましょう。右端からヘビが出現するようになりました。

ヘビとプレイヤーの当たり判定を入れよう
ヘビとプレイヤーの当たり判定を作ります。
スプライト から当たり判定(重なり)を持ってきます。
otherSprite のタイプを Enemy に変更します。
これでプレイヤーと Enemy(ヘビ)の当たり判定ができます。

プレイヤーと当たったヘビを消します。
スプライト から destroy mySprite を持ってきます。

destroy otherSprite に変更します。

消え演出を 崩壊 effect for 300 ms に変更します。

プレイヤーのライフを1つ減らします。
情報 から ライフを-1変える を追加します。

テストしましょう。
プレイヤーとヘビが当たったとき、ヘビは崩壊の演出をしながら消えているか
また、ライフが1つ減っているかを確認します。
なお、すべてのライフがなくなるとゲームオーバーになります。

次回に続きます。