【スクラッチ】初代ゼルダ風の切り替え式マップを作成してみよう

ブロックの応用テクニック
Scratch星人
Scratch星人

前回の記事ではドラクエ風のリアルタイムスクロールマップを作成しました。

今回は初代ゼルダのような画面の端に行くと次切り替わるRPGマップを作成してみます。

ぜひ、どちらの作り方もマスターして、作品作りに活かしてみてください!

【スクラッチ】ドラクエ風RPGマップスクロールを作ってみよう
Scratch星人キャラクターが歩くたびにマップ全体がリアルタイムになめらかにスライドする、昔のドラクエっぽいRPGマップを作成しようと思います。仕組みのポイントは「9つのスプライトを3×3に並べて、全てを同時に動かす」ことです。少し複雑で…

マップの準備

┌──────┬──────┬──────┐
│ マップ1 │ マップ2 │ マップ3 │
├──────┼──────┼──────┤
│ マップ4 │ マップ5 │ マップ6 │ ← 最初は5が画面中央
├──────┼──────┼──────┤
│ マップ7 │ マップ8 │ マップ9 │
└──────┴──────┴──────┘

マップ自体は前回同様に9枚用意します。

ただし、前回との違いは、ひとつのスプライトの中に、コスチュームとして9枚作成します。

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

プレイヤーのコード

特に難しいことはしていませんが、端に行った際に、上・下・右・左のいずれかを送るのがポイントです。

マップのプログラム

「上」と「下」のコード

Screenshot

記号(>・<)や計算が出てきて難しく感じるかもしれませんが、ここを理解できれば、切り替え式マップはマスター出来たと言ってもいいのと思うので、頑張ってください。

上を受け取ったときにマップ1〜3のどれかにいる場合、それ以上に上のマップはありません。

4〜9のどれかにいるときに上のマップに切り替えたいので、もし「コスチュームの番号 > 3」なら、としています。

「コスチュームの番号を-3」しているのは、例えばマップ5から上に移動するとマップ2に移動するので、「5 – 3 = 2」となるわけです。

下を受け取ったとき、も考え方は同じです。

「右」と「左」のコード

Screenshot

こちらは「上と下」よりも少し難しいかもしれません。

そこで「右を受け取ったとき」を例に、移動すべきマップを整理してみましょう。

  • 1のとき、2へ
  • 2のとき、3へ
  • 3のとき、移動しない
  • 4のとき、5へ
  • 5のとき、6へ
  • 6のとき、移動しない
  • 7のとき、8へ
  • 8のとき、9へ
  • 9のとき、移動しない

書き出してみると法則が見つけやすいですね!

3の倍数のマップのときは右に移動しないことが分かります。

つまり、プログラムにすると、「コスチュームの番号を3で割ったあまりが0ではない(つまり3の倍数でなければ)」移動するということです。

移動の際は、マップの番号を+1してあげればいいわけです。

左を受け取ったとき、も考え方は同じなので、コードの意味がよく分からない場合は、先ほどと同様に移動先を書き出して整理してみてください。

まとめ

この記事では、9枚のマップで作成しましたが、内容さえ理解できてしまえば、16枚、25枚と増やしても全く問題ないと思います!

また、今回は、移動先をあえて書き出してみました。

プログラミングでつまずく人の多くは、何でもかんでも、自分の頭の中だけで考えて混乱しているパターンが多いように思います。

紙などに書き出してアイデアを整理することは、全く悪いことではないので、どんどん書き出して、素敵なプログラムを作成してくださいね(๑╹ω╹๑ )

コメント

タイトルとURLをコピーしました