Tworzę grę Tower Defense we Flashu bez wstępnie zdefiniowanej ścieżki.
Chociaż moja siatka ma wymiary 40 x 40 (mała?), A * ma trudności z ponownym obliczaniem za każdym razem. Więc zrobiłem własną modyfikację, aby ułatwić ponowne obliczenie, a liczba dotkniętych komórek spadła do około 900 (podczas modyfikacji w pobliżu korzenia). Nadal zawiesza się na bardzo krótki, ale wykrywalny czas po umieszczeniu nowej wieży.
Czy to problem z implementacją, czy 40x40 to po prostu za dużo?
Edytować:
Struktura mojego kodu:
- Wszystkie dane są zapisywane w 2d tablicy komórek.
- Każda komórka zawiera swojego elementu nadrzędnego w kierunku ścieżki (1-8 zgodnie z ruchem wskazówek zegara) i zakodowaną bitowo tablicę swoich elementów podrzędnych na ścieżce (każdy bit reprezentuje dziecko).
- Wyszukiwanie jest wykonywane przez A * z oszacowaniem odległości euklidesowej.