Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 10.02.2004, 22:10 Titel: Kollisionserkennung |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.02.2004, 22:30 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 10.02.2004, 23:14 Titel: |
|
|
Sprechen wir über 2D oder 3D? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.02.2004, 23:21 Titel: |
|
|
Ist doch fast das gleiche, die eine Dimension mehr _________________ "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 |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 11.02.2004, 12:01 Titel: |
|
|
2D |
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 11.02.2004, 12:20 Titel: |
|
|
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 |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 11.02.2004, 13:01 Titel: |
|
|
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 |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 12.02.2004, 08:35 Titel: |
|
|
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 |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 12.02.2004, 08:38 Titel: |
|
|
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 |
|
|
|