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

Dark

Frischling

  • »Dark« ist der Autor dieses Themas
  • Private Nachricht senden

1

28.09.2004, 22:05

Pathfinding -> Kürzester Weg wie möglich

Hi,
ich plane ein 2D-Strategiespiel zu programmieren(Runden-Basiert).
Man kann Einheiten pro Runde immer nur soundsoviele Schritte (Tiles) bewegen. Aber es wär dumm, 14 mal klicken zu müssen, nur um einen Panzer 7 Felder weiter zu bringen. Ich dachte eher an sowas, dass man auf seine Endposition klickt, und dann überprüft wird, ob genug Schritte vorhanden sind. Natürlich wäre es am besten, wenn der PC den kürzesten Weg nimmt. Wie realisier ich das? Es kann natürlich auf passieren, dass ein Gegner den Weg blockiert. Dann muss das automatisch umgangen werden ...
Hat jemand Gedankenanstöße für mich?

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

2

28.09.2004, 22:26

Um einfach von A nach B zu kommen (wie bei dir zweidimensional), musst du z.B. die Höhe durch die Breite teilen und wenn der Wert dann 1 überschreitet, muss die Einheit erst in der Höhe gehen, wenn der Wert kleiner als 1 ist, muss die Einheit erst seitlich gehen.
A----------
------------
-----------B
Jetzt ist die Höhe 3 und die Breite etwa 10 Einheiten. Jetzt teilt man 3 durch 10, das Ergebnis ist <1, daher muss man erst seitlich gehen.

Zumindest im einfachen Modell funktioniert das, wie du das regelst, wenn andere Einheiten den Weg blockieren, da hab ich keine Ahnung... :D
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

Dark

Frischling

  • »Dark« ist der Autor dieses Themas
  • Private Nachricht senden

3

28.09.2004, 22:32

Oh man. DAS nenn ich schnelle und kompetente Hilfe! Danke! :)

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

4

28.09.2004, 23:41

Google mal nach "path finding" :). Gleich die ersten 10 Treffer sehen auf den ersten Blick sehr gut aus.
"Games are algorithmic entertainment."

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

5

29.09.2004, 10:24

Hi!

Da gibt es einen recht einfachen, aber sehr wirkungsvollen Algorithmus. Das Teil nennt sich A* und wird A-Star ausgesprochen. Selbst im vertracktesten Labyrinth wird so ein Weg gefunden, wenn er existiert.


http://www.gamedev.net/reference/programming/features/astar/
http://www.geocities.com/jheyesjones/astar.html

mfg,
Heiko

6

29.09.2004, 13:40

zu A*:
Einfach ja, Schnell ... andere Sachen ...

Werbeanzeige