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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

26.02.2007, 18:59

du forderst ja, dass die figur zu jedem zeitpunkt kontakt mit der oberfläche des levels hat. daraus folgt, dass dein problem 2 dimensionaler natur ist (du suchst ja einen weg auf der oberfläche des levels).

A* selbst ist nur ein algorithmus, der versucht den kürzesten weg zwischen 2 punkten in einem graphen zu finden; nichts weiter. er hat also erstmal nichts mit der geometrie eines levels zu tun. die einzigen vorraussetzungen damit A* funktioniert sind, dass es
  1. kantengewichte und
  2. eine heuristik zum abschätzen des abstandes zwischen zwei knoten im graphen gibt.
das ist alles und beides ist bei deinem problem vorhanden (du kannst ja z.b. den abstand zwischen 2 punkten berechnen).
was der graph darstellt ist dem algorithmus egal.
das problem liegt also nicht am algorithmus, sondern an der konstruktion des graphen (finden der geeigneten kantengewichte (<- wegkosten) und heuristik) zu einem problem.

ich könnte mir vorstellen, dass man erstmal alle flächen die der spieler nicht betreten kann (z.b. anhand des normalvektors) eliminiert. aus den verbleibenden flächen erstellt man sich eine datenstruktur (z.b. einen baum) die darstellt wie die flächen zusammenhängen und die hoch die kosten sind sie zu beschreiten.
bewegte objekte sind in der tat ein problem. man muss hier sicher einmal den zeitpunkt der suche mit in betracht ziehen. dann kann man z.b. abschätzen ob ein objekt sich an einem punkt befindet, zum zeitpunkt da man diesen erreichen würde, etc. vielleicht kann man auch mit wahrscheinlichkeiten was machen (suche den weg mit der kleinsten/größten wahrscheinlichkeit mit einem objekt zusammenzustoßen)...

nur so ein paar gedanken.

EDIT: ich seh grad, ich hab das mit den bewegten objekten zuerst falsch verstanden (nicht genau gelesen :P). ich lass es trozdem stehen, vielleicht ist es ja was brauchbares ;)

jojendersie

Frischling

Beiträge: 47

Wohnort: Berlin

  • Private Nachricht senden

12

22.03.2007, 17:51

Wie wärs mit einem Kombiniereten System.

1. Wegpunkte bei denen sich an Hand von IDs genau erkennen lässt ob der Angegebene Koordinatenpunkt näher am Knoten liegt als an dem aktuellen.
(z.B.: 207501 für Weltkoordinaten 207x.xxx, 501x.xxx x=Beliebig)

2. für die verbleibende "Detailkoordinaten" zu Punkt x.xxx Wegfindung nur für den betroffenen Mesh über eine Highmap oder Ebenen.

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

13

22.03.2007, 18:29

erstell einfach ne 2dmap auf die du a* anwendest...

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

14

22.03.2007, 22:02

Zitat von »"Firefly"«

erstell einfach ne 2dmap auf die du a* anwendest...

Nichts für ungut, aber lesen wäre angesagt.... ;)
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Frogy

Frischling

Beiträge: 43

Wohnort: Weimar

Beruf: Schüler (Klasse 9; Spezi)

  • Private Nachricht senden

15

19.05.2007, 11:59

Schau dir mal Nav Meshs in meinem Tutorial an ([Tutorial] Wegfindung) :D
Fortune, fame
Mirror, vain
Gone insane
But the memory remains

Metallica

Werbeanzeige