Ich habe versucht, eine einfache Wegfindung zu implementieren, aber das Ergebnis ist weniger zufriedenstellend als das, was ich erreichen wollte. Die Sache ist, dass sich Einheiten in Spielen wie Starcraft 2 in alle Richtungen bewegen, während sich Einheiten in meinem Fall nur in höchstens 8 Richtungen bewegen (Warcraft 1-Stil), da diese 8 Richtungen direkt zu den nächsten verfügbaren Knoten führen (sie bewegen sich von einem Plättchen zum nächsten benachbarten Plättchen). . Was muss ich tun, um das Ergebnis wie in Starcraft 2 zu erzielen? Fliesengröße verkleinern?
Auf dem Bild sehen Sie eine horizontale Linie von Felskacheln als Hindernisse und den gefundenen Pfad als grüne Kacheln. Die rote Linie ist der Weg, den ich erreichen möchte.
game-design
game-mechanics
path-finding
Kooi Nam Ng
quelle
quelle
Antworten:
Für einen guten Pfadfindungsalgorithmus wäre die Verwendung von A * wahrscheinlich eine gute Idee für ein einfaches Spiel, das keine ausgefeilte, effiziente oder effektive Pfadsuche erfordert, bei der sich die Charaktere einfach auf ein Ziel zubewegen, indem sie die Richtung von herausfinden Das Ziel sollte ausreichend sein.
Sie können aus den Scheitelpunkten ein Sichtbarkeitsdiagramm erstellen (welche anderen Punkte von jedem Punkt aus sichtbar sind) und dann A * für das Diagramm ausführen. Dies funktioniert, da der kürzeste Pfad immer im Sichtbarkeitsdiagramm liegt.
Das Verkleinern der Fliesengröße kann Ihnen helfen.
Ressourcen
Weiterführende Literatur
EDIT: Ich mag @ MarkusvonBroadys Kommentar.
Ressourcen
Von @MarkusvonBroady
Ich habe eine Suche durchgeführt und finde Folgendes (diese können Ihnen helfen)
quelle
Ausgehend von einem Ende des Rohpfads
path[0]
können Sie beispielsweise entfernen,path[1]
ob das Segment, das durch Verbinden der Punkte vonpath[0]
und gebildetpath[2]
wird, KEINE Wand schneidet. Wenn Sie weiter bis zum letzten Segment gehen, erhalten Sie einen einfacheren Pfad.Dies wird nicht nur den Pfad glätten, sondern auch einige nutzlose Punkte entfernen, wie z. B. 3 aufeinanderfolgende Segmente einer geraden Linie.
quelle