現在、私は視線にBresenhamのラインアルゴリズムを使用しています。問題は、プレイヤーが壁をのぞくことができるエッジケースを見つけたことです。プレイヤーが壁の2つの隅の間を、反対側に特定の角度でギャップがあるように見たときに発生します。
結果として、2つの壁の間のタイルに無効のマークが付けられます。
これを解決するためにブレセンハムのラインアルゴリズムを修正する最も速い方法は何ですか?良い解決策がない場合、より適したアルゴリズムはありますか?どんなアイデアでも大歓迎です。ソリューションは3Dもサポートできる必要があることに注意してください。
編集:私の簡単な解決策は、線のx座標とy座標が変化したときに両方の角が閉じているかどうかを確認することでした。完成した製品の実際のソースコードとインタラクティブなデモについては、http://ashblue.github.io/javascript-pathfinding/を参照してください。