Zitat von
Spider:
Hi Nonsense,
mein Problem ist, das ich nicht weiß wie ich A* verwende. Ich hab mit zwar schon die Beispiele angeguckt, bekomme sie aber nicht auf DelphiX übertragen.
Du musst A* auch nicht auf delphiX übertragen, sondern an das modell, was deinem spiel zu grunde liegt, andocken! Und auf garkeinen fall auf pixel-metrik arbeiten, denn dann wird es so elendig lange dauern bis ein weg gefunden wurde, dass ihr alt werdet. Im schlimmsten fall arbeitet man mit A* auf tile-ebene und es macht sinn, wenn die A* implementierung eine Template-methode erwartet, in der der algorythmus dann die kosten für tile (kante) abfragt. Somit hat nur diese Abfarge-template-callback-methode mit eurem spiel zu tun und der rest hat den algo nicht zu interessieren.
Du sagts, du willst den kürzesten weg. A* ist allerdings auf den güstigsten weg ausgelegt. Ist zwar in den meisten fällen das gleiche, aber wenn man kosten (zB. für hügel oder so) verteilt dann eben nicht. Will man tatsächlich die kürzeste strecke, dann kann man die heuristik überbewerten, sodass kürzere strecken auch günstiger werden. Dies ist im übrigen auch eine sehr gute optimierungs möglichkeit, da sich so die anzahl der knoten sehr stark verringert.
Viel spass!
PS: wenns brennt und garnicht geht, dann kann ich euch ein 'quick & dirty' beispeil geben.
mâxîmôv.
{KDT}