ぎょうぎょうしい名前だが、やっている事は単純で、マップにグリッドを設定した上で
プレイヤーから光線を飛ばし、1マス(1グリッドづつ進めていき)グリッドが壁か否かをその都度判定することだ。
最後に、hit は、来るループを終了してよいかどうかを決定するために用いられ、side には、壁の x 側または y 側がヒットしたかどうかが格納されます。x面がヒットした場合はsideが0になり、y面がヒットした場合はsideが1になります。x-sideとy-sideというのは、マスの境界線であるグリッドの線のことである。
参照)
DDAのアルゴリズムのわかりやすい説明動画。
https://youtu.be/NbSee-XM7WA
具体的な実装はは、ループごとに必ず x 方向に 1 マス、または y 方向に 1 マス、ごとに進みます。
x 方向が負または正、y 方向が負または正になるかは、光線の方向に依存し、は stepX と stepY に保存されます。
x 方向が負または正、y 方向が負または正になるかは、光線の方向に依存し、は stepX と stepY に保存されます。
最後に、hit は、来るループを終了してよいかどうかを決定するために用いられ、side には、壁の x 側または y 側がヒットしたかどうかが格納されます。x面がヒットした場合はsideが0になり、y面がヒットした場合はsideが1になります。x-sideとy-sideというのは、マスの境界線であるグリッドの線のことである。
参照)
DDAのアルゴリズムのわかりやすい説明動画。
https://youtu.be/NbSee-XM7WA