Ich würde gerne ein "Spiel" schreiben, in dem Sie ein Hindernis platzieren können (rot), und dann versucht der schwarze Punkt, es zu umgehen und zum grünen Ziel zu gelangen.
Ich benutze einen sehr einfachen Weg, um dies zu vermeiden. Wenn der schwarze Punkt in der Nähe des roten ist, ändert er seine Richtung und bewegt sich für eine Weile vorwärts zum grünen Punkt.
Wie kann ich einen "reibungslosen" Pfad für den computergesteuerten "Player" erstellen?
Edit: Nicht die Glätte ist das Wichtigste, sondern die rot blockierende "Wand" zu meiden und nicht hinein zu krachen und dann zu meiden.
Wie könnte ich einen Pfadfindungsalgorithmus implementieren, wenn ich nur 3 Punkte habe?
(Und was würde die Sache noch komplizierter machen, wenn Sie mehrere Hindernisse platzieren könnten?)
quelle
Das Lenkverhalten ist genau auf dieses Problem ausgelegt.
http://www.red3d.com/cwr/steer/
Grundsätzlich würden Sie das Hindernisvermeidungsverhalten mit dem Such- oder Verfolgungsverhalten kombinieren. Diese Seite enthält eine Reihe von Java-Animationen der verschiedenen Verhaltensweisen und ihrer Funktionsweise. Es gibt verschiedene Open-Source-Implementierungen von Lenkverhalten. Hier ist eins.
quelle
Ein einfacher Versuch besteht darin, einen unsichtbaren Punkt zu haben, der dem schwarzen Punkt vorausgeht und den Pfad in Ihrem ersten Bild ausführt. Der schwarze Punkt folgt dann in geringem Abstand hinter dem unsichtbaren Punkt.
Ich habe diese Arbeit mit guten Ergebnissen gesehen, aber natürlich könnte sie nicht Ihren Bedürfnissen entsprechen.
quelle