069 · ゲーム

raycast

画面の横ピクセルごとに光線を一本ずつ飛ばし、グリッド地図の壁に当たるまでDDAでセルを辿る。当たるまでの距離で壁の縦線の高さを決め、近い壁は高く、遠い壁は低く描く。床と天井を半分ずつ塗った上に、列の縦棒を積むだけで立体に見える。fillRect の縦棒の集合が一枚の風景になる。

距離で陰影をつけ、南北向きの面を一段暗く落として面の向きを出す。視点が動くと壁の高さがなめらかに伸び縮みして、奥行きが立つ。これは平面の地図を歩いているだけで、本当の 3D ではない(高さの情報を持たない 2.5D)。

矢印キーで前後に歩き、左右で向きを変えられる。無操作のときは自動で迷路を巡回し、壁の手前で向きを変えながら進む。地図はプロシージャル生成の迷路と同じ構造で、生成した地図をそのまま歩ける空間にできる。