Kollisionsabfrage von 3D-Modellen in Types
Übersicht

NerleBetreff: Kollisionsabfrage von 3D-Modellen in Types |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe Probleme mit dem abfragen bzw. löschen von 3D-Objekten in Types.
Bestimmte zerstörbare Level-Objekte lade ich anfangs, vor der Main-Loop. Dabei benutze ich Types, jedes Objekt wird also in Form eines Types gespeichert. Wenn nun geschossen wird, loope ich alle diese Types durch und prüfe sie auf Kollision mit dem Schuss. Falls diese stattfindet, soll das entsprechende 3D-Modell dass diesem Type zugehörig ist verschwinden, und anschließend der Type-Eintrag gleich ganz gelöscht werden. Dazu benutze ich folgende Code-Zeile (im Falle eines abgefeuerten Schusses) - Die Schüsse besitzen die Entity-Type Zuordnung "12": Code: [AUSKLAPPEN] For piep.TLevelObject = EACH TLevelObject If EntityCollided(piep\model,12) Then FreeEntity piep\model DELETE piep.TLevelObject EndIf Next Das funktioniert aber nicht. Die beschossenen Modelle löschen sich nicht. Was mache ich denn falsch? ![]() Wie kann ich denn überhaupt die Identität des bestimmten Types ermitteln, das gerade mit dem Schuss kollidiert? |
||
- Zuletzt bearbeitet von Nerle am Di, Nov 13, 2007 18:26, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
benutzt du parallel dazu countcollisions etc? (wäre übrigens die sinnvollere art das zu lösen, weil du da direkt die Objekte zurück bekommst die kollisieren und nicht alle testen musst selbst wenn sie nichts damit zu tun haben) | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Nerle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Dreamora,
Ich habe eben mal in der OH nachgeschlagen - verstehe aber noch nicht, wie CountCollision mir helfen kann. Dadurch wird doch nur die Anzahl der Kollision ermittelt, die stattgefunden haben, oder? Im entsprechenden Code-Sample wird allerdings der Befehl CollisionEntity erwähnt, und da steht, dass dadurch die Identität des entsprechenden Objekts ermittelt wird. Also hab ich´s mal so getestet (EntityType 1 ist das zerstörbare Level-Objekt): Code: [AUSKLAPPEN] If EntityCollided(schuss\model,1) Then Entity = CollisionEntity(schuss\model,1) FreeEntity Entity EndIf Was nicht funktioniert. Ich steh jetzt leider total auf dem Schlauch. ![]() Und der komplette Type des Level-Objekts wäre damit ja auch noch nicht gelöscht. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Frage war ob du es benutzt. Denn genau dann geht es nicht wenn du Collided nutzt und CollisionEntity.
Du kannst jedoch CollisionEntity benutzen und zwar in einer For loop die CountCollisions benutzt (denn in CollisionEntity gibst du die nummer der kollision an, nicht kollisionstypen oder so) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group