ミニダンジョンを作ろう

 

メイクコード アーケード を使ったゲーム作り第10弾です。

前回、前々回とタイルマップを使った課題でした。
今回もタイルマップを使います。
「この機能を使いこなせばゲーム作りの幅が広がるんだ」
という思いが強くあるので、説明てんこ盛りでいきます。
5ページ構成という長さになりそうです。

これまでにしてきた説明はできるだけ省略します。
理解が追いつかないときは前の課題からやり直しましょう。

 

これから作るゲーム

これはゲームではないです。
ダンジョンの作り方を学習するためのサンプルになります。

まずは抜け道(壁)とアイテムの配置です。
抜け道とは当たりの無い壁のことです。
一見、移動できないと思える所でも実は通過できるというギミックです。

抜け道とスプライト配置

 

次は、アイテムをランダムに配置する方法です。

アイテムのランダム配置

 

スイッチによる消せる壁の作り方です。

消せる壁

 

配置した敵を動かす方法です。

配置した敵の動かし方

 

以上のようなダンジョンのギミックと、次の部屋への切り替え方を説明します。

 

プレイヤーを表示しよう

新しいプロジェクトを作りましょう。
名前は「ミニダンジョン」にしました。

新しいプロジェクトを作る

 

プレイヤーを作ります。

プレイヤーを作る

 

キャラクターはこれにしました。
このキャラと同じ大きさなら、どの絵でも構いません。

プレイヤーの絵を選ぶ

 

操作できるようにします。
ついでに背景色も入れます。肌色っぽい色を選びましょう。

操作できるようにする

 

プレイヤーの設定はこれで終わりです。
実行してプレイヤーの移動テストを行いましょう。

 

1つ目のマップを作ろう

タイルマップを使ってマップを作っていきます。
シーン から タイルマップを設定する を持ってきます。

タイルマップを設定するを選ぶ

 

マップエディタを開きます。

マップエディタを開く

 

横に長いマップを作ります。
マップサイズを横 167 に変更します。

マップサイズを16x7にする

 

下図のように壁を作ります。

壁を配置する

 

当たり判定をセットします。
セットしない所を2箇所作ります。

当たり判定を入れる

 

実行してみましょう。
当たり判定を入れなかった所をすり抜けられるかチェックします。
プレイヤーのサイズが大きいので引っ掛かりやすいです。注意しましょう。

すり抜けられる壁をチェック

 

この手のギミックは昔からよく使われます。
親切なゲームでは、絵に少し手を入れて「よく見ると他と違う壁」にしたりします。

 

カメラを入れよう

このマップは画面サイズより大きいため、カメラを入れてプレイヤーを追いかけるようにします。
シーン から カメラでスプライトmySpriteを追う を持ってきます。

カメラを入れる

 

最初だけ の中に入れます。
これでスプライト mySprite つまりプレイヤーを中心にカメラが移動します。

最初だけの中に入れる

 

プレイヤーの初期配置を決めよう

現在、実行するとプレイヤーは画面中央に表示されます。
マップに関係なく表示されるため、壁の上に表示されたりします。

プレイヤーは画面中央に表示される

このようなことが起こらないようにプレイヤーの初期位置を決めなくてはいけません。
ただし、座標を指定する方法はよくありません。
マップが増えるたび、マップ毎に座標を設定する必要が出てきてしまうからです。

 

定番としては初期配置の情報をマップ内に組み込んでしまう方法があります。

早速やってみましょう。Dungeon の絵を選択して
3つの絵を使い「プレイヤーの初期位置」「コインの配置」「脱出の階段」をマップに組み込みます。

3つの絵を使う

 

下図のように配置します。

初期位置、コイン、階段を配置

 

実行するとこんな感じになります。
ちなみに、絵は私が適当に選んだだけで違う絵を使っても大丈夫です。

配置した絵がそのまま表示される

 

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

mySpriteをランダムに◻︎の上に配置

 

最初だけ の中に入れたら「プレイヤーの初期位置」の絵に変更します。

プレイヤーの初期配置の絵をセット

 

mySpriteをランダムに◻︎の上に配置 のランダムについてですが、組み込んだ絵が1つならば必ずその絵の上に表示されます。
なお「マップの四隅のどこか」に出現させたいのであれば、初期配置の絵をマップの四隅に組み込むだけです。簡単ですね。

実行すると、プレイヤーは初期配置の絵の上に表示されます。

プレイヤーは初期配置の絵の上に表示される

 

初期配置の絵を消そう

初期配置の絵はいらないので消しましょう。
これから説明するのは、マップ上の絵を消すときによく使う手法です。
今回のようにマップ情報とプログラムが分離している場合は、マップに使われている絵の情報を読み取って使います。

ループ から 配列 list の値を変数値に入れてくりかえす を持ってきます。

配列listの値を変数に入れてくりかえすを使う

 

最初だけ の中に入れます。

配列listの値を変数に入れてくりかえすを最初だけに入れる

 

シーン から すべての◻︎位置の配列 を持ってきます。

すべての◻︎位置の配置を使う

 

繰り返しの list の所に入れます。
そして初期配置の絵に変更しましょう。
これでマップ上にある初期配置の絵の情報をすべて扱えるようになります。

繰り返しの list の所に入れる

 

シーン から タイルをタイルマップ列0行0に設定する をループに入れます。

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

 

を下図のようにはめ込みます。
ループするとき の中の情報を使って空のタイルを設定します。
つまり、初期配置の絵を消します。

値をはめ込む

 

実行して初期配置の絵が消えることを確認します。

初期配置の絵が消えた

このようにマップ上の絵の情報を読み取り、必要なだけ繰り返しを行う方法はとてもよく使います。

 

続きます。

 

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