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

 

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

初心者がチュートリアルを終了し「さあゲームを作ろう」としたとき、どうすればいいか分からなくて戸惑ってしまう話はよく聞きます。
なので当講座では、私がゲームを作ったときと同じ順番で説明しています。
少しずつ積み上げるように作っていく感覚を覚えてもらいたいからです。

それから説明の中で「実行してみよう」の言葉をよく見かけると思います。理由はプログラミングにおいてテストすることはとても重要だからです。
人は習慣で行動します。テストをする習慣を身に付けてください。

 

変数でマップを切り替えよう

配列にセットした2つのマップを切り替えるための仕組みを作ります。

まず、選択中のマップを管理するための変数を作ります。
変数を追加する をクリックします。

新しい変数を作る

 

変数名を map_no にします。

変数名をmap_noにする

 

下図のように 変数 map_no を 0 にする を入れます。
変数 map には実際のマップデータを入れて、
変数 map_no にはマップ番号を入れることになります。

変数map_noを0にするを入れる

 

配列を選択するために 配列の 0 番目の値 を用意します。

配列の0番目の値を用意する

 

タイルマップを 設定する の中に map の 0 番目の値 を入れます。

赤玉の数のループを作る

 

変数 から map_no を持ってきます。

map_noを持ってくる

 

map の map_no 番目の値 にします。
これで map_no でマップを切り替える仕組みは完成しました。

mapのmap_no番目の値にする

 

変数 map_no に 1 をセットして実行してみましょう。
2番目のマップが表示されます。

map_noに1をセットしてテストする

 

壁を消す仕組みを作ろう

2番目のマップが表示できた所で、スイッチで壁を消す仕組みを作っていきます。
スイッチには青い玉を使います。

現状、岩の壁があるため下に移動することはできません。

岩の壁のため移動できない

 

タイルマップ用の当たり判定を持ってきます。

赤玉の数のループを作る

 

青い玉に変更します。

青い玉に変更する

 

タイル をタイルマップ列 0 行 0 に設定する を持ってきます。

タイルをタイルマップ列0行0に設定するを使う

 

当たり判定の中に入れます。
空のタイルを location の場所にセットします。
これでプレイヤーと青い玉が当たったとき、青い玉は消えます。

空のタイルで青い玉を消す

 

いきなり質問です。
「どうして青い玉を消す必要があるのでしょうか?」

この問に答えられない、または、答えを間違えた人は学習が上手くいってません。
プログラミングする力が身に付いていない、と言えます。
学習と並行して自分で考えたゲームを作るようにしましょう。
学習課題を少し改造するだけでもいいです。とにかく、自分で考えてプログラミングすることが大切です。
質問の答えは「青い玉を消さないと何度も当たり判定が実行されてしまうから」です。

 

岩の壁を消そう

スイッチの部分はできました。
これからスイッチで岩を消す仕組みを作ります。

プレイヤーの初期配置やコインに差し替える仕組みと同じことをします。
ループのブロックを用意しましょう。

ループのブロックを用意する

 

当たり判定の中に入れます。

ループを当たり判定の中に入れる

 

マップ上のタイルを探すため すべての ◻︎ 位置の配列 を持ってきます。

すべての位置の配列を用意する

 

ループに配置して岩の絵を選択します。

岩の絵を選択する

 

見つけた岩を空のタイルで差し替えます。
には岩の情報が入ります。

見つけた岩を空のタイルで差し替える

 

テストしましょう。
青い玉に当たると岩が消えます。

青い玉に当たると岩が消える

 

岩の当たり判定を消そう

岩の表示を消しても、移動することはできません。
マップ作成時に設定した当たり(壁)が残ったままだからです。

岩の当たりが残っているので移動できない

 

タイルマップ列 0 行 0 に壁を設定する オフ を持ってきます。

タイルマップ列0行0に壁を設定するを使う

 

岩を消すループの中に入れます。
タイルマップ座標に をセットして当たり(壁)を消します。

値の位置の当たりを消す

 

実行してマップの下まで移動できることを確認しましょう。

この命令で当たり(壁)のON・OFFができます。
ゲームの中で橋を壊すなどの演出をするとき、当たりもONにすれば壊れた橋は通行できなくなります。

 

3つ目のマップを作ろう

3つ目のマップを作ります。

まず + をクリックして配列の枠を増やします。

配列の枠を増やす

 

変数 map_no に 2 をセットします。
そして3番目のタイルマップのエディタを開きます。

3番目のタイルマップのエディタを開く

 

マップサイズを横 205 に変更します。

マップサイズを20x5にする

 

壁・プレイヤーの初期配置・脱出階段を描きましょう。

壁・プレイヤーの初期配置・脱出階段を描く

 

壁に当たり判定を入れます。

壁に当たり判定を入れる

 

実行してマップが正しく表示されるか確認しましょう。

新しいマップの表示を確認する

 

続きます。

 

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