Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:07

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Di Nov 11, 2003 14:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hi,
Ich möchte ein kleines rennen basteln und dabei den PC ein auto fahren lassen, dies soll den Weg mit A* finden, genauers weiß ich darüber nicht *g*
Suche ein Tutorial, hier gibts keins und google spuckt auch nichts aus, vielleicht hat einer von euch einen Link oder selbst eins geschrieben...
Wäre ganz gut.

Danke im voraus...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 14:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
guckst du hier: ;)
http://www.policyalmanac.org/games/aStarTutorial.htm


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 14:39 
Offline
DGL Member

Registriert: Di Okt 07, 2003 12:26
Beiträge: 23
Also in "Der Entwickler" gab es mal einen Artikel dazu, der auch sehr gut verständlich war. Passend dazu kann mann sich auch eine A* Klasse mit
Quellcode unter
http://www.derentwickler.de/itr/ausgaben/psecom,id,84,_psframe,,linkobject,source_,nodeid,54.html
herrunter laden. Vieleicht hilft es dir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: mh
BeitragVerfasst: Di Nov 11, 2003 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Nur nen Artikel darüber finde ich nicht, kann sein das ich mich auf der Seite nicht auskenne, kann aber auch sein das der nicht mehr Existiert, aber der wird mir wohl nicht weiter helfen.
Ich kann ja mal versuchen ob ich das verstehe.
oder gibts noch ne bessere Möglichkeit das meine autos immer die strecke entlang fahren?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 16:28 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
ai-depot.com. Dort gibts zu allen Bereichen der künstlichen Intelligenz Infos in Hülle und Fülle.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 19:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Was für ein Zufall! :!:
Habe vor kurzen erst überlegt ein Path-finding auf VierEckmuster-Turial zu schreiben, leider hatte ich bisser nicht die Zeit meine Idee in ein Projekt und Turial umzusetzen. Eventuell hab ich am Wochenene Zeit und Lust für mein Projekt und werde bei Bedarf nebenbei ein Turial verfassen.
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 19:40 
Offline
DGL Member

Registriert: Di Okt 07, 2003 12:26
Beiträge: 23
Nein den Artikel konntest du auch garnicht finden, der ist nähmlich nur in gedruckter Form erhältlich. Ich wollte eigentlich mehr auf die Klasse heraus.
Da sind nähmlich auch mehrere Beispielprogramme drinn.

Aber das Prinzip von A* ist ja eigentlich ganz einfach:
Du guckst dir alle angrenzenden Felder vom Startknoten an,
und schätzt wieviel kosten du zum Ziel hast. Dabei musst du die Schritte einbeziehen, die du schon gegangen bist, und die du vermutlich noch gehen musst. Dann setzt du alle diese felder auf die open-Liste. Jetzt gehst du die Open-liste durch, und suchst dir das feld mit dem besten Schätzungswert, und nimmst diesen als Startknoten. Dann geht das ganze wieder von vorne los.
die Punkte die du schon einmal als Startknoten gennommen has, kommen auf die closed-Liste, dammit sie nicht nochmal berechnet werden.#

Zitat:
oder gibts noch ne bessere Möglichkeit das meine autos immer die strecke entlang fahren?

Es gäbe natürlich auch die Möglickeit, die Autos immer entlang einer vorgegebenen Strecke fahren zu lassen. Das macht aber nur dann Sinn, wenn du wirklich im Editor oder wie du die Strecken auch immer designest, das selbst angibst. Also sozusagen eine optimallinie erstellen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: ahja
BeitragVerfasst: Di Nov 11, 2003 21:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Und wie sieht das aus wenn ich das fahrzeug ramme, kommt das dann wieder von alleine auf die strecke und ihren weg, bei beiden varianten? :lol:
soll ja so ein bobbycar spiel werden, bobbycars mit raketenantrieben :-P
hab noch ein freund, der mir die models macht und dann könnte das was werden

und es würde mir egal was ich nehme so ein Tutorial nicht schaden :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 12, 2003 19:28 
Offline
DGL Member

Registriert: Di Okt 07, 2003 12:26
Beiträge: 23
Zitat:
Und wie sieht das aus wenn ich das fahrzeug ramme, kommt das dann wieder von alleine auf die strecke und ihren weg, bei beiden varianten?

Also der A* Algorithmus analysiert eigentlich nur was der günnstigste Weg zwischen zwei Punkten ist. Der kennt keine Strecken oder so was, der nimmt immer den Weg der am schnellsten geht.

Bei der Methode mit dem vorgegebenen Pfad müsstest du dann irgendetwas implementieren, dass das Auto immer wieder erst zum Pfad hin fährt, befor es dem folgt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 12, 2003 19:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Auf gamedev.net hatten sie mal einen Artikel, da wurde vorgeschlagen eine Tabelle mit allen Knoten a,b anzulegen und darin jeweils den ersten Wegpunkt auf der Strecke von a nach b zu speichern. Wenn sich an dem Level nicht viel ändert, dann kann man auf die Art und Weise die Rechenzeit für die Wegberechnung zur Laufzeit einsparen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Jo
BeitragVerfasst: Mi Nov 12, 2003 22:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Also, das ist mir klar mit dem Weg finden, wenn ich ne umrandung mache, dann sucht er ja den kurzesten Weg zum Ziel und ich muss nur was programmieren, das der rennwagen dem weg folgt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 07, 2003 14:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ich hab jetzt das Beispiel fertig(Turial lohnt sich nicht),
zwar habe ich nicht nach Schema A gemacht, aber letztändlich sieht es für komme ich auf das gleiche Ergebnis.
Es eignet sich nicht für dein Rennspiel da diese Wegberechnung davon ausgeht das sich das Objekt nur in 4 oder 8 Richtungen bewegen kann.

Allerdings habe ich gerade eine neue gute Idee für dich:
Wenn du die Strecke wie schon LarsMiddendorf sagte in WegPunkte unterteilst. Dazu erstellst du noch alternativ Wegpunkte.
Dann Pickst du dir die Wegpunkte aus zwischen denen sich dein Auto befindet. Nun überprüfst du ob sich ein Gegner/Objekt auch in diesem Gebiet(Zwei Punkte definieren ein Gebiet) befinden. Ist dies der Fall berechnest du den Winkel den das Auto zum Gegner hat und den Winkel zum eigentlichen Ziel. Ist dieser Gleich oder sehr ähnlich und der Abstand zum gegnerischen Auto klein, so schlägt dein Auto den Weg zum nächsten Alternativ Wegpunkt ein.


Ach ja wenn du wilst lade ich hier mein Beispiel Programm hoch.
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Ja
BeitragVerfasst: So Dez 07, 2003 17:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Gerne, gib gib gib :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 07, 2003 17:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich verweise an dieser Stelle mal auf ne Newsmeldung von dev2k in der es jede Menge brauchbarer Links zu Dokumenten die sich mit dem D*-Algorithmus beschäftigen gibt. Im Gegensatz zu A* ist dieser nämlich auch für dynamische Szenarios geeignet und sollte in deinem Falle auch bevorzugt werden.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 07, 2003 18:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Thx für den Link SOS!
Adler ich habe die exe hochgeladen.
Du wirst dann sicher verstehen warum diese Technik nicht für ein Rennspiel geeignet ist.

Ach ja noch die Steuererung:
Leertaste: Neuen Kegel erzeugen, welcher sich ein zufälliges Ziel sucht.
Str: Alle Kegel erhalten neue Ziele
Mit Linker Maustaste kann ein Kegel ausgewählt/abgewählt werden.
Mit einem Rechtsklick auf ein leeres Feld befehligt ihr dem ausgewählten Kegel sich dahin zu bewegen

Zu den Feldern:
Rot gilt als besetzt, Grün als frei.

Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Zuletzt geändert von Flo am So Dez 07, 2003 19:12, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]