Ich erstelle ein 2D-Karten-basiertes Actionspiel mit einem ähnlichen Interaktionsdesign wie Diablo II. Mit anderen Worten, der Spieler klickt auf eine Karte, um seinen Spieler zu bewegen. Ich habe gerade die Spielerbewegung beendet und gehe zur Wegfindung über.
Im Spiel sollten Feinde den Charakter des Spielers aufladen. Es gibt auch fünf verschiedene Geländetypen, die unterschiedliche Bewegungsboni bieten. Ich möchte, dass die KI diese Geländeboni nutzt, um den Spieler zu erreichen.
Mir wurde gesagt, ich solle den A * -Suchalgorithmus überprüfen (http://en.wikipedia.org/wiki/A*_search_algorithm). Ich mache dieses Spiel in HTML5 und JavaScript und habe eine Version in JavaScript gefunden: http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript Ich versuche herauszufinden, wie ich es optimieren kann obwohl.
Nachfolgend sind meine Ideen aufgeführt, was ich ändern muss. Worüber muss ich mich sonst noch sorgen?
- Wenn ich ein Diagramm erstelle, muss ich das übergebene 2D-Array mit einer Durchquerung einer Karte initialisieren, die den verschiedenen Geländetypen entspricht.
- in graph.js: Die Definition "GraphNodeType" muss geändert werden, um die 5 Geländetypen zu verarbeiten. Es wird keine Wände geben.
- in astar.js: Die Punkte g und h müssen geändert werden. Wie soll ich das machen?
- in astar.js: isWall () sollte wahrscheinlich entfernt werden. Mein Spiel hat keine Wände.
- in astar.js: Ich bin mir nicht sicher, was das ist. Ich denke, es zeigt einen Knoten an, der nicht gültig ist, um verarbeitet zu werden. Wann würde das allerdings passieren?
- Wie ändere ich diesen Algorithmus auf hoher Ebene von "Oh, gibt es dort eine Wand?" zu "Wird mich dieses Terrain schneller zum Spieler bringen als das Terrain um mich herum?"
Aus Zeitgründen diskutiere ich auch darüber, meinen Bresenham-Algorithmus für die Feinde wiederzuverwenden. Leider werden die verschiedenen Geländebewegungsboni von der KI nicht verwendet, was das Spiel zum Kotzen bringt. : / Ich hätte das wirklich gerne für den Prototyp, aber ich bin weder ein Entwickler von Beruf noch ein Informatiker. : D.
Wenn Sie einen Code kennen, der das tut, wonach ich suche, teilen Sie ihn bitte mit!
Tipps zur Überprüfung der geistigen Gesundheit sind ebenfalls willkommen.