ミニダンジョンを作ろう 4

 

前回の ミニダンジョンを作ろう 3 のつづきです。

プログラミングに興味が出たら、他の言語もチャレンジしてみましょう。
それぞれ得意なことが異なるので、複数知っている方が楽しいですよ。
Scratch、Python、Javascriptなどおすすめです。
学習の始め方が分からないときは、ネットにある無料の入門サイトを探してみるのはどうでしょうか。
なぜ無料のサイトを勧めるかというと、学習内容が自分にあっているかどうかやってみないと分からないからです。 無料ならすぐにやめて次へ行きやすいですよね。

 

指定したマップでコインを表示

3つ目のマップ、つまり、map_no が 2 の時だけコインを表示させます。

まず条件判断文を作ります。
論理 から下図のブロックを持ってきます。

条件判断用のブロックを持ってくる

 

最初だけ の一番下に条件判断文を入れます。

条件判断文を入れる

 

変数 map_no を組み込んで 2 と等しいかどうかの条件判断文を作ります。

map_noが2かどうか判断する

 

くりかえし 8 回を入れます。

くりかえし8回を入れる

 

コインのスプライト表示を上からコピーします。
これでコインを8つ表示します。

コインのスプライト表示をコピー

 

シーン から mySpriteをランダムに の上に配置 を持ってきます。

mySpriteをランダムにの上に配置を使う

 

下図のところに入れて変数を coin に変更します。
絵を指定していないので、マップ上の何もないタイルの上にコインが表示されます。

coinをランダムに配置する

 

実行してみましょう。
何もない地面の上にコインが8個表示されます。

地面にコインが表示される

 

ところで画面の下の方(壁の外側)にコインがないことに気づきましたか?
このマップは画面サイズより縦が小さいです。
実際のマップは壁が表示されているエリアだけなので、この中の空のタイルからランダムに選ばれてコインが配置されます。

 

マップの処理を関数にしよう

マップの処理を関数(かんすう)にします。
関数とは、処理をまとめておくことで再利用しやすいようにする仕組みのことです。
最初だけ の中からマップ処理を取り出して関数にします。

関数高度なブロック の中にあります。
ここを開いて 関数を作成する をクリックします。

関数を作成する

 

関数の名前を マップのセット にします。

マップのセットを関数名にする

 

マップの処理を関数ブロックの中に移動します。
下図に見えていない最後の処理まで移動しましょう。

マップの処理を関数ブロックの中に移動

 

これでマップの処理を関数にできました。簡単ですね。

マップの処理の関数

 

最初だけ の中からこの関数を呼び出す必要があります。
「関数を呼び出す」「関数を呼ぶ」というフレーズは、関数内の処理を実行するという意味です。

関数 から 呼び出し マップのセット を持ってきます。
この呼び出し用のブロックは関数を作ったときに自動で作られます。

呼び出しマップのセットを使う

 

最初だけ の中に 呼び出し マップのセット を入れます。
それから、これからのために変数 map_no0 にしておきましょう。

最初だけの中に呼び出しブロックを入れる

 

これでマップの処理を関数にすることができました。
実行してちゃんと動くか確認しましょう。

 

マップの切り替えをしよう

プレイヤーが階段までたどり着いたとき次のマップへ切り替えます。

シーン からタイルマップ用の当たり判定を持って来ます。

タイルマップ用の当たり判定を使う

 

タイルの絵を階段に変更します。

タイルの絵を階段に変更

 

変数 から 変数 map_no を 1 だけ増やす を持って来ます。

変数map_noを1だけ増やすを持ってくる

 

当たり判定の中に入れます。
設定が下図と異なるとき 変数 map_no を 1 だけ増やす にします。

変数map_noを1だけ増やすを入れる

 

あとはマップ処理の関数を呼び出すだけ … ではないんです。
階段にたどり着いたとき、次のマップへ切り替えるパターンとオールクリアの2つのパターンが存在します。

下図の条件判断文を用意します。

下図の条件判断文を用意

 

等しいかどうか調べるため = のブロックを入れます。

等しいか判断する

 

高度なブロック配列 の中から 配列の長さ を持ってきます。

配列の長さを使う

 

変数 map_nomap の配列の長さを比べます。
配列の長さ map を使うとセットしたマップの個数を調べることができます。
つまり、マップの個数と map_no の数が同じとき「最後のマップを表示していた」ことになります。

map_noとmap配列の長さを比べる

 

ゲーム から2つのブロックを持ってきます。

ゲームから2つのブロックを持ってくる

 

上に game over 勝ち を入れて、下に タイトル"次のマップへ"を表示する を入れます。

ゲームオーバーと次のマップへを入れる

 

下に 呼び出し マップのセット を入れます。

マップのセット関数を呼び出す

 

テストしましょう。
1面から2面へ、2面から3面へ切り替わるときは「次のマップへ」が表示されます。

次のマップへが表示される

 

3面の階段へたどり着いたときゲームオーバー演出が始まります。

3面のクリアでゲームオーバー

 

続きます。

 

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