Thema: Pathfinding

Einzelnen Beitrag anzeigen

Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#3

AW: Pathfinding

  Alt 11. Jan 2011, 22:28
Naja. Das ist ja nur halbes Pathfinding würde ich sagen... Wenn du da Hindernisse einbauen möchtest, und bei deinem Ansatz bleiben möchtest, musst du doch einfach nur die 'if' Teile in den Timern/OnKeyDown ändern, so dass sich weder Kreis noch Kasten über andere Dinger (=Hindernisse) drüber bewegen können? Vielleicht die Hindernisse in einem Array/Liste merken (im OnCreate alle erstellen und in die Liste packen) und dann einfach bei jeder Bewegung die Liste iterieren, und schauen, ob die neue Koordinate erlaubt ist, oder nicht.
Echtes Pathfinding (okay, bin da auch nur ein 'Idiot', aber A-Stern kenne ich) sieht für mich anders aus, das beinhaltet am Ende dann nicht nur "Da darf ich hin" und "Da darf ich nicht hin", sondern noch Abstufungen dazwischen. Anstatt von "Frei" und "Wand" gibt es dann vielleicht noch sowas wie "Schlamm" oder "nächstes Feld geht bergauf, deshalb dauert es länger und ist ein schlechterer Weg", wo nur drüber gegangen wird, wenn man damit schneller wäre, als wenn man den Weg über "Frei" wählt..
Dieser Ansatz mit den Timern ist nicht gerade optimal und macht auf lange Sicht nicht glücklich. Wenn man mal ein bisschen rumfrickeln will und wie hier nur "Wand" und "Frei" hat geht das vielleicht noch, spätestens wenn das Spiel dann flüssig laufen soll, es "Wand", "Frei" und "Schlamm"/"Bergauf" gibt und man nicht nur VCL, sondern was anderes (z.B. Andorra2D-Engine) benutzt, kann man sich wohl davon verabschieden..
Sprich: Wenn du hier nur experimentieren willst, ist das okay, aber wenn du auf lange Sicht mehr willst, solltest du das Konzept ändern..

LG
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat