でんでんジャンプを作ろう(完)

 

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

これで完結です。
がんばりましょう。

ゲームはざっくり4つの要素で作られています。
企画・グラフィック・サウンド・プログラムです。
これをすべて一人で作るのは大変です。まぁ、一人で作る楽しさもありますけどね。
いつか誰かとコラボしてみると刺激があって楽しいですよ。
挑戦してみてください。

 

ゲームを改良しよう

ゲームとしての形はできました。
ヘビを避けながらリンゴを取るゲームとして遊べます。
これに手を入れて改良していきます。

まずゲーム開始のとき残りライフ数の表示をします。
これはプレイヤーに前持って知らせるべき情報だからです。
やられて初めて「あ、ライフは3つなのね」と分かるようなのはよくないです。

情報 から ライフを3にする を 持ってきて 最初だけ の中に入れます。

ライフを3にするを使う

 

つぎは、好きなタイミングでゲームを始められるようにします。
開始後、操作しなければやられてしまうような内容ならば必ず入れましょう。

ゲーム から タイトル○を表示する を持ってきます。

タイトル○を表示するを使う

 

最初だけ の中に入れて ヘビよけてリンゴをとれ に変更します。

タイトルの表示を行う

 

開始前にメッセージが表示されるようになりました。
A ボタンを押すことでゲームが始まります。
本来はタイトルを表示するための機能ですが、このような使い方もOKです。

タイトルでウエイトさせる

 

ゲームを難しくしよう

いまゲームを遊んでみると、とても簡単でつまらないですね。
その原因の中で大きそうなのが、ヘビを避けることに専念していればゲームオーバーにならないことがあります。
解決方法としては、ヘビの動きを複雑にする、ヘビ以外の敵キャラを出すなどがあります。 今回、プログラムを複雑にしたくないので、ここは「リンゴを取り損ねるとライフが減る」という仕様を追加します。

 

リンゴを取り損ねたことを知るため、スプライトが破壊されたかどうかを調べるブロックを使います。

スプライト から下図のブロックを持ってきます。

スプライト破壊のイベントを調べる

 

リンゴのタイプは Food です。
Player から Food に変更します。

PlayerからFoodに変更する

 

Food(リンゴ)が破壊されたときの演出も入れます。
スプライト から mySpriteにエフェクトスプレーをかける を持ってきます。
sprite にエフェクト崩壊を かける 300 ミリ秒間 に変更します。

スプライトに崩壊演出を入れる

 

情報 から ライフを-1変える を追加します。

ライフを1減らす

テストしましょう。
おっとバグが発生しました。リンゴを取ったときライフが減ってしまいました。
リンゴを取ったときと落としたとき、どちらもスプライトを破壊しているのが原因です。

このバグを回避するため、リンゴを取ったときタイプを変更します。
スプライト から mySpriteをPlayerタイプにする を持ってきます。

mySpriteをPlayerタイプにする

 

Player と Food の当たり判定の中に入れます。
mySprite を otherSprite に変更します。

otherSpriteをPlayerタイプにする

 

新しいタイプを作ります。
メニューを開いて 新しいkindを追加 をクリックします。

新しいkindを追加する

 

新しく noFood というタイプを作ります。

noFoodタイプを作る

 

これでプレイヤーがリンゴを取ったとき、Food から noFood に切り替わります。

noFood のタイプに切り替わる

テストしましょう。
これでリンゴを取ったときライフは減らなくなりました。

 

もう少し難しくしよう

少し遊ぶと操作に慣れて、まだちょっと簡単な気がします。
プレイヤーが余裕を持って遊べる、つまり状況をしっかり把握できるから簡単なのかもしれません。

リンゴの発生間隔を短くしてみます。
2000 から 1400 ミリ秒毎に変更します。

1400ミリ秒毎に変更する

 

どうでしょうか、難しすぎますか?
私はこれくらいがいいかなと思います。
ゲーム難易度は遊んでもらいたい人に合わせて調整するのがいいです。

 

サウンドを入れよう

最後にサウンドを入れていきます。

音楽 から play sound ピコーン until done を持ってきます。

サウンドを入れる

 

プレイヤーがリンゴを取ったときの効果音を入れます。
再生方法は バックグランドで に変更します。

リンゴを取ったときの効果音

 

つぎはジャンプしたとき、つまり A ボタンを押したときの中に入れます。
sound バンバン それから バックグランドで に変更します。

ジャンプの効果音を入れる

 

プレイヤーがヘビに当たったときと、リンゴを取り損ねたときに効果音を入れます。
sound zapped それから バックグランドで に変更します。

やられ効果音を入れる

 

テストしましょう。
自分の好きなサウンドを選んでも楽しいですよ。

 

やられ演出を入れよう

ヘビに当たったときと、リンゴを取り損ねたときライフを失います。
いまはライフが減るだけなので、やられた感はないですね。
そこで画面を揺らしたいと思います。

シーン から カメラを4ピクセルで500ミリ秒間揺らす を持ってきます。

カメラを揺らすを使う

 

Player と Enemy(ヘビ) の当たり判定と、Food(リンゴ)が破壊されたときの中に入れます。

ヘビとの当たり判定とリンゴ破壊の中に入れる

 

テストしましょう。
それぞれのタイミングで画面が揺れるかチェックします。
ただ、揺れるのはスプライトとタイルマップの絵だけです。
背景は揺れないので、今後、違うゲームを作ったとき、画面中に表示するスプライトが少ないと 揺れているかどうか分かりにくいので注意してください。

 

関数にしよう

これでゲームは完成しました。
新しいテクニックを覚えたことで、作れるジャンルの幅が広がったと思います。

ついでにもう一つ覚えて欲しいことがあります。
それは関数の使い方です。
ここでいう関数(かんすう)とは命令ブロックをまとめて再利用し易いようにすることです。

高度なブロック を開き f(x) 関数 をクリックしてください。

高度なブロックの関数を開く

 

関数を作成する をクリックします。

関数を作成するをクリック

 

ヘビに当たったときやリンゴを取り損ねたときの処理がほぼ同じなので、これを関数にしたいと思います。
関数名を やられ処理 に変更して「完了」をクリックします。

関数名をやられ処理にする

 

ヘビとの当たり判定とリンゴの破壊イベントの近くに配置します。

ヘビとの当たり判定とリンゴ破壊処理の近くに置く

 

効果音の再生と画面の揺らし、ライフ−1を関数の中に移動します。
もう片方の処理はゴミ箱へ捨てましょう。
これで やられ処理 という関数ができました。

やられ処理を関数の中に移動する

 

関数は呼び出すことで使えます。
関数 から 呼び出し やられ処理 を持ってきます。

呼び出しやられ処理を使う

 

当たり判定と破壊イベントの中に 呼び出し やられ処理 を入れます。

関数やられ処理を当たり判定と破壊イベントに入れる

テストしてください。
関数を使う前とまったく同じ動作をします。

 

今回の例では関数を使うメリットがわかりにくいですね。
もし、プレイヤーのやられるパターンが10個だったらどうでしょうか?
それぞれにやられ処理を作るより、関数にして呼び出す方が簡単ですよね。

本当はもっと便利な機能、そして使い方がたくさんあります。
プログラミングの世界で「関数」を使うのは当たり前なんです。
また別の機会に説明したいと思います。

 

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. ミニダンジョン(完)