2D einheit um gegenstände herumlaufen



  • Nein, sind sie nicht. Aber die allzu offensichtlichen Unterschiede kannst du wirklich auf eigene Faust herausfinden.



  • Hmm.. Im Gegensatz zu Lee werden beim A* Knotenpunkte vergeben, über die Gegangen wird. Hierdurch ist die Wegekarte nicht so fein gerastert, wie die Spielkarte.. Weiterhin wird die Welle nicht rückwärts gezählt, sondern vorwärts.. Ansonsten ist A* nichts weiter als ne Adaption des Lee..



  • Das stimmt aber nicht wirklich.

    Wie fein das Raster ist, hat mit A* nichts zu tun. A* ist ein abstrakter Algorithmus zum Lösen von beliebigen Problemen (beliebtes Beispiel: Schiebepuzzles), die bestimmte Eigenschaften aufweisen.
    Außerdem hast du bei diesem Lee (den ich gar nicht kenne) wohl offensichtlich auch Knotenpunkte, die selben kannst du für den A* verwenden, außer du hast ein besseres System.

    Der Hauptunterschied besteht immer noch darin, dass A* mit einer heuristischen Funktion arbeitet, die den verbleibenden Aufwand schätzt.



  • Das schlimme ist, das im Netz hunderte Algorithmen kursieren die alle vorgeben A* zu sein. Ich habe für meine A* Implementierung folgendes Tutorial durchgeackert: http://www.gamedev.net/reference/articles/article2003.asp
    Da ist alles ganz gut erklärt.
    Momentan versuche ich noch "Binary Heaps" zu verwenden (Im Grunde genommen eine Art Quick-Sort-Insertion-Sort Mutation zum Sortieren und schnellen Auffinden der Open-List Elemente).



  • hmm..
    Das ist natürlich möglich.
    Das Tutorial das ich gelesen habe, war mehr auf das Pathfinding ausgerichtet, als auf die entsprechende heuristische Suchmethode. Dementsprechend muss ich wohl meine Aussage (nach meinem Verständnis) insofern abändern, als dass A* nicht der Pathfinding-Algorithmus ist, sondern ein Aufsatz zur Optimierung eines Problems, im Pathfinding-Falle auf einen Lee 😉 ..

    Werd mich aber mal genauer informieren - obwohl ich's bereuen werde, da mich solch eine Problematik im Moment nicht wirklich tangiert..



  • A* kann beliebige Kantengewichte und Lee nicht. 😎

    @Cpp_Junky: Ich denk Fibonacci Heaps sind am effizientesten für Dijkstra und Konsorten?

    Bye, TGGC (Dem beste BdT)



  • @TGGC: Effizient ist es allemal. Wo ich früher durch die halbe Open-List suchen musste, muss ich jetzt vielleicht noch 3-4 vergleiche machen, dann weiss ich welches der nächstbeste Wegpunkt ist.



  • TGGC schrieb:

    A* kann beliebige Kantengewichte und Lee nicht. 😎

    Definiere "Kantengewichte"



  • <vermutung>

    Er meint verschiedene Kosten zum nächsten Wegknoten. Beispielsweise kann man, so wie ich, ein freies System haben, wo die Knoten nicht in einem Gitter liegen, sondern lediglich die Hindernisse umgeben. Dabei ist natürlich der Weg von einem Knoten zum nächsten nicht jedesmal der gleiche.
    Oder man kann die Bewegung auf verschiedenen Terrainarten teurer machen.
    Damit kann man z.B. einer Stealth-Einheit beibringen, sich möglichst im Schatten zu bewegen.
    Oder natürlich, Sümpfe zu vermeiden, wenn in der Nähe auch ein Weg um den Sumpf herum führt.

    </vermutung>



  • In einem Graphen G = (V,E), wir die reele Zahl c(e), die der Kante e element E zugeordnet ist, Kantengewicht oder Bewertung genannt.

    Hinweis: Optimizer hat recht.

    Bye, TGGC (Der Held lebt!)


Anmelden zum Antworten