Also im Wesentlichen arbeitet der Algorithmus mit der Luftlinie da ja so, dass er die direkte Luftlinie berechnet und bei einem Hindernis den Helden solange um das Objekt rumlaufen lässt, bis er wieder auf der Luftlinie ist, anschließend setzt er den Weg fort.
Woran das Implementieren scheitert, versteh ich nicht so ganz. Erstmal einen Algorithmus schreiben, der ohne einen Durchgang zu schaffen berechnen kann, ob man auf Luftlinie ist oder nicht (idealerweise als Funktion x->y, die auch auf y->x umschalten kann für vertikale Linien, je nach Verhältnis der x/y-Abstände), dann ein zwei Switche ("bereitsLuftlinieverlasen" "bereitsmitUhrzeigersinnversucht") und einen Algorithmus für am-Rand-entlanglaufen. (prüfe die 4 umliegenden Felder, Feld vorne zu und Feld neben einem frei -> laufe auf das neben dir, Feld vorne zu und das daneben auch, das hinter einem nicht -> laufe nach hinten etc) und die Sache müsste geritzt sein.
Kann durch dieses "Tracing with line of sight" immer noch leicht erweitert werden, einfach bei jedem neuen Feld prüfen, ob die Sichtlinie frei ist, ist ja ohne weiteres möglich und gut ist.
Wenn du mich fragst, hast du bei deiner Implementierung wahrscheinlich in dem riesigen Codesalat einen winzigen Fehler gemacht, der das ganze ausmacht.
Ansonsten, wie siehts mit Waypoints aus?
Kannst du die Karte vielleicht so in Waypoints aufteilen, dass du einen primitiven Dijkstra verwenden kannst?
An sich könnte ich mir sogar einen Algorithmus vorstellen, der gezielt möglichst große "Kammern" findet (sternförmige Gebiete, d.h. jeder Punkt einer Kammer kann durch eine direkte Linie von einem "Mittelpunkt" aus erreicht werden), in sie einen Waypoint setzt, Wege zu anderen Kammern anlegt und eine Kostenmatrix anlegt, mit der Dijkstra funktioniert... allerdings müsste man sich hier einige Gedanken noch machen (insbesondere weil man ja keine Zuordnung Tile -> Kammer anlegen kann ohne wirklich massiv Variablen zu benutzen und wenn man das macht, kann man gleich tileweise Dijkstra durchführen)
(beschreib am Besten, was du überhaupt machen willst wenn das nicht geheim ist)