Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.12.2008, 20:27

Pathfinding

Hallo,

ich konstruier mir gerade nen TowerDefense Game.
Also, ich habe ein 16*12 Raster, und pro Feld kann mein ein Tower setzen.
Man muss so bauen, dass die Gegner einen weiten Weg von A nach B laufen müssen.
Nehmen wir mal an sie spawnen bei Feld 0|0 und müssen zu 16|12.
Jedes Feld hat eine Variable belegt. Wenn das Feld frei ist ist belegt gleich 0, wenn ein Tower darauf gebaut wurde ist belegt gleich 1.
Wenn frage ich mich, wie ich den Weg für die Gegner rausfinden soll.
Wichtig ist, das es nicht irgendein Weg seien soll, sonder der kürzeste.

Hat jmd. vorschläge oder Links zu diesem Thema ?
Schon mal Danke (:

MfG Unknown

Anonymous

unregistriert

2

06.12.2008, 20:43

Bei einem TD das auf einem Grid basiert, ist A* wie geschaffen für. Zwar nicht der schnellste, aber reicht hierfür allemale.

Toa

Alter Hase

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

3

06.12.2008, 20:48

Hier ein paar Seiten zum A*
http://www.policyalmanac.org/games/aStarTutorial_de.html
http://theory.stanford.edu/~amitp/GameProgramming/

Wiki kannste auch ma schaun da steht bestimmt auch was ..

4

06.12.2008, 21:52

Hmm, siegt recht vielversprechend aus.
Doch es sieht so aus, als wenn dieses Verfahren auch für diagonale Schritte ist. Doch das soll bei mir nicht der Fall sein ;)


Ich schaus mir noch mal genauer an.

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

5

06.12.2008, 22:50

Ein diagonaler Schritt müsste sich doch aber problemlos in zwei orthogonale Schritte aufteilen lassen.

6

06.12.2008, 23:12

Ne nicht immer.Beispiel:

X -> belegt
O -> Frei

OOOOO
OXOOO
OOXOO
OOXOO
OOXOO

bei Feld 2|3 würde er dann nach 3|2 hüpfen können :)

7

06.12.2008, 23:19

A* ist allgemein für Graphen, rechteckige Felder sind also nur ein Sonderfall. Ob Diagonal oder nicht, ist daher beliebig.
Lieber dumm fragen, als dumm bleiben!

8

07.12.2008, 20:14

Kann ich das diagonale Bewegen verhindern indem ich nur die Felder die über/unter/ neben dem akutellen Feld in die "offene" Liste hinzufüge ?

9

07.12.2008, 20:39

ja

10

07.12.2008, 21:33

Das feine daran ist, du kannst halt auch ruckizucki einfach mal ein Portal einbauen. Versteht ich sowieso nicht, wieso in den ganzen Echtzeitstrategiespiele meine Einheiten nie die Portale benutzen, wo es doch eigentlich gar nicht schwer ist.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige