Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Pathfinding (https://www.delphipraxis.net/157437-pathfinding.html)

fox67 11. Jan 2011 20:52

Pathfinding
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mir einen einfach pathfinding algorythmus ausgedacht und programmiert jetzt will ich das erweiter so dass es auch mit hindernissen funktioniert.
PS: (für die perdonen die die datei runteladen) das ziel der grüne kasten kann man mit den pfeiltastensteurn)

Luckie 11. Jan 2011 20:58

AW: Pathfinding
 
Zitat:

Zitat von fox67 (Beitrag 1074028)
jetzt will ich das erweiter so dass es auch mit hindernissen funktioniert

Dann wünsche ich dir viel Erfolg. Oder was erwartest du jetzt? Und neben bei bemerkt, was ist an einem Hindernis anders, als eine Wand in einem Labyrinth?

wicht 11. Jan 2011 21:28

AW: Pathfinding
 
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

himitsu 12. Jan 2011 07:34

AW: Pathfinding
 
Delphi-Quellcode:
virstrtriMyList
phonetisch wird's irgendwie nicht besser :lol:

fox67 12. Jan 2011 16:07

AW: Pathfinding
 
Ich habe bis jetzt noch nie mit arrays oder listen gearbeitet könntest mir jemand ein gutes tutorial zeigen was ich dann aber auch für mein problem gebrauchen kann

mquadrat 12. Jan 2011 16:24

AW: Pathfinding
 
Klar, wir lesen die schnell alle und schauen ob sie passen. :lol: Also das musst du schon selber machen.

fox67 12. Jan 2011 16:26

AW: Pathfinding
 
so habe ich das nicht gemeint aber vielleicht kennt ja jemand ein tutorial dass ihm selbst mal geholfen hatt und dass gerade hier reinpasst

mquadrat 12. Jan 2011 16:29

AW: Pathfinding
 
Hab ich mir schon gedacht, dass das so gemeint war, aber die Antwort konnte ich mir einfach nicht verkneifen ;)

Habe selber leider gerade nichts passendes zur Hand. Aber ein Grundlagen-Buch wäre sicher nicht verkehrt. Dann hat man wenigstens was, in dem man mal nachschlagen kann.

wicht 12. Jan 2011 18:14

AW: Pathfinding
 
Ich meine, ich habe mich an dem hier orientiert: http://www.policyalmanac.org/games/a...torial_de.html

Vielleicht hilft das.. Achja: Es sieht am Anfang kompliziert aus (viel Text), ist aber eigentlich nicht so schwierig.

fox67 13. Jan 2011 14:18

AW: Pathfinding
 
dieses tutorial kenn ich ich habe es auch schon ein zwei mal durchgelesen aber wie gesagt ich habe noch nie mit listen oder arrays gearbeitet also bringt mir dieses tutorial auch nicht viel


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz