
前回の記事ではドラクエ風のリアルタイムスクロールマップを作成しました。
今回は初代ゼルダのような画面の端に行くと次切り替わるRPGマップを作成してみます。
ぜひ、どちらの作り方もマスターして、作品作りに活かしてみてください!

マップの準備
┌──────┬──────┬──────┐
│ マップ1 │ マップ2 │ マップ3 │
├──────┼──────┼──────┤
│ マップ4 │ マップ5 │ マップ6 │ ← 最初は5が画面中央
├──────┼──────┼──────┤
│ マップ7 │ マップ8 │ マップ9 │
└──────┴──────┴──────┘
マップ自体は前回同様に9枚用意します。
ただし、前回との違いは、ひとつのスプライトの中に、コスチュームとして9枚作成します。

コスチュームの名前は、なんでも大丈夫ですが、順番は左上から右下に向かって行くように作成してください。
プレイヤーのコード

特に難しいことはしていませんが、端に行った際に、上・下・右・左のいずれかを送るのがポイントです。
マップのプログラム
「上」と「下」のコード

記号(>・<)や計算が出てきて難しく感じるかもしれませんが、ここを理解できれば、切り替え式マップはマスター出来たと言ってもいいのと思うので、頑張ってください。
上を受け取ったときにマップ1〜3のどれかにいる場合、それ以上に上のマップはありません。
4〜9のどれかにいるときに上のマップに切り替えたいので、もし「コスチュームの番号 > 3」なら、としています。
「コスチュームの番号を-3」しているのは、例えばマップ5から上に移動するとマップ2に移動するので、「5 – 3 = 2」となるわけです。
下を受け取ったとき、も考え方は同じです。
「右」と「左」のコード

こちらは「上と下」よりも少し難しいかもしれません。
そこで「右を受け取ったとき」を例に、移動すべきマップを整理してみましょう。
- 1のとき、2へ
- 2のとき、3へ
- 3のとき、移動しない
- 4のとき、5へ
- 5のとき、6へ
- 6のとき、移動しない
- 7のとき、8へ
- 8のとき、9へ
- 9のとき、移動しない
書き出してみると法則が見つけやすいですね!
3の倍数のマップのときは右に移動しないことが分かります。
つまり、プログラムにすると、「コスチュームの番号を3で割ったあまりが0ではない(つまり3の倍数でなければ)」移動するということです。
移動の際は、マップの番号を+1してあげればいいわけです。
左を受け取ったとき、も考え方は同じなので、コードの意味がよく分からない場合は、先ほどと同様に移動先を書き出して整理してみてください。
まとめ
この記事では、9枚のマップで作成しましたが、内容さえ理解できてしまえば、16枚、25枚と増やしても全く問題ないと思います!
また、今回は、移動先をあえて書き出してみました。
プログラミングでつまずく人の多くは、何でもかんでも、自分の頭の中だけで考えて混乱しているパターンが多いように思います。
紙などに書き出してアイデアを整理することは、全く悪いことではないので、どんどん書き出して、素敵なプログラムを作成してくださいね(๑╹ω╹๑ )


コメント