ダンジョンを作ってみる。

入力はこんな感じにする予定。

 0 1 2 3 4 5 6 7 8 9
+-+-+-+-+-+-+-+-+-+-+
|S  |*|*|*|       |*|0
+   +-+-+-+ +-+-+ +-+
|   |*|*|*| |*|*| |*|1
+-+#+-+-+-+#+-+-+ +-+
|*| |*|*|   |*|*| |*|2
+-+ +-+-+   +-+-+ +-+
|*|     #   |*|*| |*|3
+-+-+-+-+-+-+-+-+ +-+
|*|*|*|*|*|*|*|*| |*|4
+-+-+-+-+-+-+-+-+ +-+
|*|*|*|*|*|*|*|*| |*|5
+-+-+-+-+-+-+-+-+#+-+
| #   |*|*|*|*|     |6
+ +   +-+-+-+-+     +
| |   #       #     |7
+ +-+-+-+-+-+-+-+-+-+
| |*|*|*|*|*|*|*|*|*|8
+ +-+-+-+-+-+-+-+-+-+
| |*|*|*|*|*|*|*|*|*|9
+ +-+-+-+-+-+-+-+-+-+
|                  G|0
+-+-+-+-+-+-+-+-+-+-+
S:Start
G:Goal

ウィーザードリィ的なマップだとマス目とマス目の間をデータで表現する必要がある。
素直に書けばこうかな。

床を貼った


壁を立てた


壁を立ててFPSカメラにして当たり判定を入れてみた。
まだドアを実装していないがだいたい初期の目的は達成した。壁にテクスチャを貼ったらそれっぽいものになるだろうが、テクスチャ付きの壁モデルを外から読み込む方がよかろう。
入力のフォーマットは、歩けるところを' 'にするよりも入れないところを' 'にする方が使い勝手がよさそうだ。