Wieder mal geht es bei mir um ein 2D Spiel:
Ich verschiebe bis jetzt Figuren indem ich ihnen ein Ziel (Point) gebe und sie bei jedem Zeichnen der Szene(wird über Timer gesteuert) einen Schritt in Richtung dieses Zieles machen lasse.
Jetzt ergibt sich aber das Problem, dass nicht alle Bereiche der Szene zum Laufen freigegeben sein sollen. Im Moment läuft die Figur gerade auf das Ziel zu und bleibt dann stehen, wenn es nicht weiter geht. Es sind also nur direkte Weg möglich.
Ich stell mir als Lösung soetwas vor wie
Delphi-Quellcode:
if direkterWegMöglich then macheEinenSchritt // alte Variante
else macheEinenSchrittZumNächstenWegPunktInDerRichtigenRichtung
Mein Problem liegt in der zweiten Zeile (*surprise*):
- Wie entscheide ich zu welchem Wegpunkt ich muss?
- Wie vermeide ich Sackgassen?
- könnte man das auch mit vordefinierten Wegpfaden machen und wäre das besser?
Ich bin über jede Anregung oder Alternative dankbar