Ich mache ein Tower Defense-Spiel in Flash ohne vordefinierten Pfad.
Obwohl mein Raster 40x40 (klein?) Ist, hat A * bei jeder Neuberechnung Probleme. Also habe ich meine eigenen Änderungen vorgenommen, um die Neuberechnung zu vereinfachen, und die Anzahl der berührten Zellen ist auf etwa 900 gesunken (bei Änderungen in der Nähe der Wurzel). Es friert immer noch für eine sehr kurze, aber nachweisbare Zeit ein, wenn ein neuer Turm aufgestellt wird.
Ist dies ein Implementierungsproblem oder ist 40x40 einfach zu viel?
Bearbeiten:
Die Struktur meines Codes:
- Alle Daten werden in einem 2D-Array von Zellen gespeichert.
- Jede Zelle enthält ihr übergeordnetes Element in Pfadrichtung (1-8 im Uhrzeigersinn) und ein bitweise codiertes Array ihrer untergeordneten Elemente im Pfad (jedes Bit repräsentiert ein untergeordnetes Element).
- Die Suche wird von A * mit der Schätzung der euklidischen Entfernung durchgeführt.