でんでんジャンプを作ろう 2

 

前回の でんでんジャンプを作ろう のつづきです。

子ども向けのプログラミング教育で非常に人気のある「Scratch(スクラッチ)」をご存じですか?
もし未経験であれば、ぜひ一度試してみてください。
Scratch は、スプライト(キャラクター)ごとにプログラムを組む、オブジェクト指向型のプログラミング言語です。そのため、最初は少し戸惑うかもしれません。
しかし、プログラミングの考え方や組み立て方の幅を広げてくれる良い教材です。

 

リンゴを落とそう

一定の間隔でリンゴを発生させます。

ゲーム から ゲームが更新された時 500 ミリ秒毎 を持ってきます。

ゲームが更新された時500ミリ秒毎を用意する

 

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

発射体のブロックを用意する

 

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

りんごの絵を使いvy60にセット

 

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

画面の左端にりんごが落下する

 

変数の名前を変更しましょう。
projectile という名前では、何を表しているのか分かりにくいからです。

変数の名前を変更する

 

変数名を apple にします。

変数名をappleにする

 

画面いっぱいにリンゴを降らせたいので x 座標をランダムにします。

スプライト から mySprite の x を 0 にする を持ってきます。
変数名を apple に変更します。

appleのxを0にする

 

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

ランダムな数字を選択を持ってくる

 

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

乱数を20から140にする

 

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

落下間隔を2秒毎にする

 

実行して画面幅いっぱいにリンゴが落下することを確認しましょう。

 

リンゴとプレイヤーの当たり判定を入れよう

プレイヤーがリンゴを取れるように当たり判定を入れます。
その準備として、リンゴのタイプを設定します。

スプライト から mySprite を Player タイプにする を持ってきます。

mySpriteをPlayerタイプにするを使う

 

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

appleをFoodタイプにする

 

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

当たり判定を使う

 

プレイヤーとリンゴが当たったとき、リンゴを消します。

スプライト から mySprite を破棄する を持ってきます。
削除対象を otherSprite に変更しましょう。

destroy otherSpriteを入れる

 

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

スコアを1変えるを使う

 

リンゴをコインに変えてみよう

ちょっと新しいことにチャレンジしてみましょう。
プレイヤーがリンゴを取ったとき、リンゴをコインの絵に変えてみます。

スプライト から mySprite の画像を○にする を持ってきます。

mySpriteの画像を○にするを使う

 

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

otherSpriteをコインの絵に変更する

 

このままでは絵はすぐに消えてしまいます。
破棄のパラメータを 300 ミリ秒のエフェクト なし に変更します。
これで演出は行われず 300 ミリ秒後(0.3秒後)にコインは消えます。

0.3秒後にコインを消す

 

他のゲームでよく見かける「コインが上に移動して消える」演出を入れます。

スプライト から mySprite の x を 0 にする を持ってきます。
otherSpritevy(y方向の速度)-20 に変更します。

コインを上に移動させる

 

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

リンゴを取るとコインに変わる

 

今回はリンゴをコインに変更しましたが、「+100」といった表示のほうが一般的かもしれませんね。
そのような場合は、ギャラリーから絵を選ぶのではなく、自分で「+100」と描いた画像を用意すればよいでしょう。
あ、もちろんスコアに加算する数値も「100」に変更する必要があります。

 

ヘビを出現させよう

つぎはヘビを出現させましょう。

ゲーム から ゲームが更新された時500ミリ秒毎 を持ってきます。

ゲームが更新された時を使う

 

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

ヘビの絵を使う

 

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

発射体の変数名を変更する

 

変数名を snake にしました。

変数名をsnakeにする

 

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

速度vx-50vy0に変更する

 

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

ヘビのy座標を100にする

 

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

ヘビをenemyタイプにする

 

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

ヘビが右端から出現する

 

ヘビとプレイヤーの当たり判定を入れよう

ヘビとプレイヤーの当たり判定を作ります。

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

プレイヤーとenemyの当たり判定を作る

 

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

destroy mySpriteを使う

 

mySprite を otherSprite に変更します。

destroy otherSpriteに変更する

 

破棄のパラメータを 300 ミリ秒のエフェクト 崩壊 に変更します。

消え演出を崩壊にする

 

プレイヤーのライフを1つ減らします。
情報 から ライフを -1 だけ増やす を追加します。

プレイヤーのライフを1つ減らす

 

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

ヘビの消え演出とライフの減りを確認する

 

次回に続きます。

 

MakeCode Arcade

  1. MakeCodeはいかが
  2. りんご狩りゲーム
  3. りんご狩りゲーム(完)
  4. ピザを避けてゲーム
  5. ピザを避けて 2
  6. ピザを避けて(完)
  7. アカウント登録
  8. ケーキ早食いゲーム
  9. ケーキ早食い 2
  10. ケーキ早食い(完)
  11. 危険ドライブ
  12. 危険ドライブ 2
  13. 危険ドライブ(完)
  14. 15秒シューティング
  15. 15秒Shooting 2
  16. 15秒Shooting(完)
  17. ブロック崩し
  18. ブロック崩し 2
  19. ブロック崩し(完)
  20. ヘビキングを撃て
  21. ヘビキング(完)
  22. ちょびっと迷路
  23. ちょびっと迷路 2
  24. ちょびっと迷路(完)
  25. でんでんジャンプ
  26. でんでんJump 2
  27. でんでんJump(完)
  28. ミニダンジョン
  29. ミニダンジョン 2
  30. ミニダンジョン 3
  31. ミニダンジョン 4
  32. ミニダンジョン(完)