Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
LeeDiGer Super JLI'ler

Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 06.09.2003, 12:16 Titel: Pathfinding ohne Sektorenteilung |
|
|
Ich habe ein 2D-Weltraumshooter programmiert, worin man sein Raumschiff inkl. Verbündete Einheiten in allen richtungen frei bewegen kann. Die Karte ist nicht in Felder aufgeteilt. Die Objektplatzierung und Bewegung soll komplett frei sein. Gibt dennoch Möglichkeiten für einen Pathfindingalgorithmus? z.B. möchte ich meine Einheiten von A nach B schicken und unterwegs ein Objekt umfliegen ( z.B. ein gegnerisches übermächtiges Schlachtschiff). |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 06.09.2003, 12:31 Titel: |
|
|
Der Bildschirm ist doch sicher in Pixel unterteilt - nimm doch einfach die als Sektoren  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 06.09.2003, 12:34 Titel: |
|
|
Hallo,
hmmm Kollisionserkennung? Wozu brauchst du bei einem 2D-Shooter Pathfinding? Nur eben mal so?
Ich meine reicht ja, wenn deine Objekte ihr Ziel kenne und versuchen das zu erreichen. Auf dem Weg dorthin kann man ja kontrollieren, ob sie irgendwo anecken und wenn ja eben umfliegen? Ich weiß jetzt natuerlich nicht, wie komplex deine Umgebung ist und wie anspruchsvoll deine KI sein soll??
Aber ich wuerds so machen... |
|
Nach oben |
|
 |
LeeDiGer Super JLI'ler

Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 06.09.2003, 13:13 Titel: |
|
|
Das mit den Pixel wäre ja echt ne geniale Idee.
Klar kann ich meine Einheiten manuell steuern. Aber ich steuer nur eine Einheit gleichzeitig. Die Verbündeten bekommen nur befehle von mir. die Umgebung ist nicht sonderlich komplex. Die Hintergrundgrafiken dienen nur zur Show. Aber wenn ich z.B. ein schwarzes loch einbauen will, sollte dies möglichst umflogen werden. Ist halt nur ne verfeinerung der KI. Wenns keine Möglichkeit gibt, lass ich es halt sein. |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 06.09.2003, 13:33 Titel: |
|
|
Ich hab hier ein cooles Beispiel dazu aus einem Buch von mir:
Alle Hindernisse haben einen Mittelpunkt und einen Radius. Das zu bewegende Objekt hat einen Mittelpunkt, einen Radius und einen Zielvektor. Aus diesen Informationen lässt sich dann der verbesserte Richtungsvektor berechnen, und zwar wie folgt:
Legende:
Code: |
GloalVec = Zielvektor
GolaLocation = Zielposition
Location = Spielerposition
DirVec = Richtungsvektor
ObstacleVec = Vektor zum Hindernis
Distance = Abstand zum Hindernis
|
Code: |
GoalVec = GoalLocation - Location
if(GoalVec.length < Speed)
return // das Ziel wurde erreicht
DirVec = GoalVec / GoalVec.length // Der Richtungsvektor ist gleich dem normalisierten Zielvektor
k = 0.1
for(i = 0; i < NumObstacles; ++i)
{
ObstacleVec = Location - Obstacle[i].Location
Distance = ObstacleVec.length - Obstacles[i].Radius - Radius
ObstacleVec.Normalize()
DirVec += ObstacleVec * ( k / (Distance * Distance) )
}
DirVec.Normalize()
|
Danach musst du dein Objekt nur noch um DirVec * Speed bewegen. Fertig. ;)
Zur Anwendung: Ich würde den gegnerischen Raumschiffen einen so großen Hindernisradius geben, dass deine Einheiten außer Schussreichweite bleiben. Und bei schwarzen Löchern so groß, dass sie nicht in den "Ansaugabstand" geraten... den beachtet die obere Funktion nämlich nicht. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
LeeDiGer Super JLI'ler

Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 06.09.2003, 13:48 Titel: |
|
|
Das hört sich schon mal gut an. Die Raumschiffe sollen nicht so verblödet sein wie die Sammler aus C&C, die ab und zu durch die gegnerische Basis fahren um Tiberium zu sammeln. |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 06.09.2003, 18:48 Titel: |
|
|
Du liest nicht zufällig auch "Der Entwickler" ?  _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 06.09.2003, 18:49 Titel: |
|
|
Ist das ne Zeitschrift? _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 06.09.2003, 18:59 Titel: |
|
|
Ja, besonders für Borland Programmierer ist leider ziemlich nahe am Profibereich angesiedelt. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
LeeDiGer Super JLI'ler

Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 06.09.2003, 19:45 Titel: |
|
|
Wenns ne Zeitschrift sein soll... kenn ich nicht. Aber solche feinheiten in der KI sind meiner Meinung wichtig. Vor allem sollte vieles Automatisiert werden, damit der Benutzer keine Handlingsprobleme bekommt. Ich hatte damals auch das problem gehabt Schiffe um eine Insel beliebiger Form herum fahren zu lassen. Ohne Sektorenteilung ging da gar nichts. Aber wenn jemand ne Idee hat wies ohne geht, der sollte gefeiert werden. |
|
Nach oben |
|
 |
|