JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=718499af017a3c3293d788df29637430Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Kollisionserkennung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 10.02.2004, 22:10    Titel: Kollisionserkennung Antworten mit Zitat

Hallo
Wie kann ich die Kollisions erkennung machen
Wenn ich 5 gegner 10 Raketen und ich selbst auf die Kollision geprüft
werden soll.
Soll ich das so machen.
1 gegner mit allen anderen auf Kollision prüfen.
2 Gegener mit allen anderen aufl Kolllision prüfen.
,
,
1 Rakete mit allen anderen auf Kollision prüfen.
und
und
und
oder kann man das vereinfachen

Bitte um Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.02.2004, 22:30    Titel: Antworten mit Zitat

Erstmal die ganzen Objekte in Bereiche aufteilen (Octree) dann die überprüfst du ob sich Objekte in einem Bereich befinden.

Wenn ja und es mehr als ein Objekt ist dann entweder weiter unterteilen oder gleich alle Objekte miteinander im Bereich auf ne Kollision prüfen (Wenn du es genau haben möchtest sollte man erstmal weniger genaue Verfahren nutzen wie Bounding Box oder Bounding Sphere)

Wenn es keine Objekte oder nur eins ist dann nichts weiter prüfen.
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 10.02.2004, 23:14    Titel: Antworten mit Zitat

Sprechen wir über 2D oder 3D?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.02.2004, 23:21    Titel: Antworten mit Zitat

Ist doch fast das gleiche, die eine Dimension mehr Rolling Eyes
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 12:01    Titel: Antworten mit Zitat

2D
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 12:20    Titel: Antworten mit Zitat

es reicht, wenn du die gegner und den spieler überprüfst. Denn wenn eine Rakete mit einem Gegner kollidiert, dann kolidiert ja auch der Gegner mit der Rakete.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 13:01    Titel: Antworten mit Zitat

Man kann alle-gegen-alle Prüfungen wie folgt optimieren:

Code:

int i, j; // Schleifen Dummies

for(i = 0; i < ANZAHL; ++i)
  for(j = i + 1; j < ANZAHL - 1 /* Hier bin ich mir nicht ganz sicher */; ++j)
    if(TestCollision(i, j))
    {
       HandleCollision(i mit j);
       HandleCollision(j mit i);
    }


Ich denke der Code ist selbstredend... anstatt ein Objekt gegen alle zu prüfen schaut man hier gleich nach Paaren.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 12.02.2004, 08:35    Titel: Antworten mit Zitat

Hallo danke erstmal für die Antworten
Jetzt habe ich aber noch ein Problem.
ich möchte aber jetzt PixelgenaueKollision anwenden.
habe aber das Problem das ich mit Texturen verwende und bei LockRect handelt es sich ja um ein Surface.
soll ich jetzt die Texture in ein Surface kopieren und dann prüfen oder
geht das auch anders direkt von der Textur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 12.02.2004, 08:38    Titel: Antworten mit Zitat

Ich bin nicht ganz sicher, ich glaub, das geht mit
Code:
[deine textur]->GetLevel(0) // das sollte einen pointer auf ein surface zurückgeben ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum