今回の内容
前回まで構築した、フィールドマップを、ベタにプログラミングするのではなく、マップデータを作ってそれを参照に表示するという方式を追加したいと思います。 こうすることで、指定のマップデータを切り替えるだけで、別のマップ表示ができるようになり、 RPGゲームで、フィールドマップから、町や城に入って画面が切り替わるというような場合や、大きなマップのつなぎで切り替えたりして、 マップが無限に広げることが可能になります。基本は二次元配列
簡単に行いたい場合は、以下のように縦軸と横軸の文字列を並べて、1文字で1チップとしてしまうという方法があります。マップデータその1
00000
00000
00000
00000
00000
でも、これでは、数字だけだと、10パターン、英字を混ぜても、10+26パターン。
英字は大文字小文字とワケてもいいのだが、ファイル名などで大文字小文字を判別しないサーバーシステムに設置した途端に破綻してしまうので、
それは区別せずに、アルファベットの個数だけに留めておきます。
あと、記号をいくつか追加して、「_-+~*=@$%!^|」URLや、OSのファイル名など、色々と関連しない記号と考えると、この12個ぐらいが限界かな〜〜〜
そんなわけで、10+26+12=48パターン。
おしい!あと2つで50なんだけど、それでも、40パターンしかマップの画像パターンが持てないというのはなんとも少なすぎる気もするなあ〜
もう一つの方法は、マップデータをjsonデータとしてしまうという方法
そうすれば、1つのマップ画像をそのファイル名などをそのまま使えてしまうので、汎用性は激増します。
[
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0]
]
こんな感じです。
ファイルの拡張子をpngに統一して、ファイル名をできるだけ簡易文字列にすることで、マップデータの容量増大は防ぐことができそうです。
他にも、ファイル種類ごとに、16進数化するという方法がありますが、
半端なはずですが、上記の5x5のマップデータで作ってみると、
11111
11111
11111
11111
11111
これを、16進数でやると、
1f,1f,1f,1f,1f
こうなります。
非常にデータ容量は少なくなるように思えますが、表示するファイルの数だけ同じ容量のデータを作らないといけないのと、
1マスだけの表示でも、マップ全部の容量が必要になる事を考えると、
json方式の方が、手打ちで構築できるし、確認もラクかな〜と考えてしまいました。
他にもやり方があるのかな?
もう少し考えてみたいけど、次回は、json方式を搭載したプログラムを作ってみたいと思います。
0 件のコメント:
コメントを投稿