jo das zeichnen habe ich ja herausgenommen, habe wirklich nur die Zeit um deine FindPath() gemessen.
Für Einsatzzwecke würde ich noch folgendes vorschlagen:
- Threads benutzen, sodass der Weg "in ruhe" im Hintergrund berechnet wird, und das Hauptprogramm nicht gestört wird, und wenn der Weg gefunden ist, kann ihn das Hauptprogramm nutzen.
Stichworte: ThreadSafe, und Thread-Feste Prozeduren, Mutex, usw.
- Die Weg-Bäume von beiden Seiten (Start und Ziel) wachsen lassen. Zur zeit wächst dein Baum (egal welche Methode) ja immer vom Start zum Ziel. Würde nun aber auch vom Ziel ein Baum wachsen und der Weg dann der erste kontackt beider Bäume sein, wäre die Berechung vorallem bei großen Karten schneller.
Wo ich immer Probleme bei meinen Projekten hatte, war, wie ich bewegliche Hindernisse (Einheiten) dort einfließen lassen soll.
Wie du ja richtig sagtest, muss man eigentlich nur ein mal den Weg berechnen lassen. Das funktioniert aber nur solange wie die Karte statisch ist. Klar sind einheiten nicht so groß, als dass sie die Weg so unglaublich doll ändern würden.
Aber es gibt ja auch u.u. so eine Art Eingänge, und wenn dann dort mehrere Einheiten hinfahren, während ich meinen Weg ablaufe, dann kommts zur Kollision, und die Einheiten drängeln sich "dumm" aneinander vorbei.
Bin auf weitere Ergebnisse sehr gespannt
