Im Moment verwende ich Bresenhams Linienalgorithmus für die Sichtlinie. Das Problem ist, dass ich einen Randfall gefunden habe, in dem Spieler durch Wände schauen können. Tritt auf, wenn der Spieler in bestimmten Winkeln zwischen zwei Ecken einer Wand mit einer Lücke auf der anderen Seite schaut.
Das gewünschte Ergebnis ist, dass die Kachel zwischen zwei Wänden als ungültig markiert wird.
Was ist der schnellste Weg, um den Linienalgorithmus von Bresenham zu modifizieren, um dies zu lösen? Wenn es keine gute Lösung gibt, gibt es einen besser geeigneten Algorithmus? Ideen sind willkommen. Bitte beachten Sie, dass die Lösung auch 3D unterstützen sollte.
Bearbeiten: Meine einfache Lösung bestand darin, zu überprüfen, ob beide Ecken geschlossen sind, wenn sich die x- und y-Koordinaten einer Linie ändern. Den funktionierenden Quellcode und eine interaktive Demo des fertigen Produkts finden Sie unter http://ashblue.github.io/javascript-pathfinding/.