Probleme mit MeshesIntersect [Gelöst] =\
Übersicht

![]() |
TankbusterBetreff: Probleme mit MeshesIntersect [Gelöst] =\ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es handelt sich hierbei um einen Ausschnitt aus einer Funktion.
Ziel ist es, zu prüfen, ob das Spieler-Mesh (P\mdl) mit dem Schuss-Mesh (S\mdl) kollidiert. Wenn das passiert, soll der Schuss gelöscht werden. Wie auch immer, hier der Code Zitat: Function .....() [...] If EntityDistance(P\mdl,S\mdl)<10 If MeshesIntersect(P\mdl,S\mdl) Then L_Free=1 EndIf [...] If L_Free=1 Then FreeEntity S\mdl:Delete S [...] End Function Das Problem ist, dass MeshesIntersect nicht funktioniert. Entitydistance funktioniert einwandfrei. Das erkenne ich daran, dass es funktioniert, wenn ich den Code wie folgt ändere: Zitat: Function .....() [...] If EntityDistance(P\mdl,S\mdl)<10 L_Free=1 EndIf [...] If L_Free=1 Then FreeEntity S\mdl:Delete S [...] End Function Nur damit habe ich den Effeckt der Poly-Poly kollision ja nichtmehr .... =\ Woran könnte das liegen? ![]() In der Hilfe steht auch nichts darüber. |
||
Twitter
Download Jewel Snake! Windows|Android |
- Zuletzt bearbeitet von Tankbuster am Mo, Nov 03, 2008 22:27, insgesamt einmal bearbeitet
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
MeshesIntersect prüft nur, ob sich die Triangles/Kanten überschneiden, nicht ob sich ein Objekt in einem anderen befindet. Wenn Deine Kugel also ein relativ kleines Mesh ist und entsprechend schnell bewegt wird kann sein, dass sich die Kugel in den meisten Fällen gar nicht mit der Außenhaut des Zielmeshs schneidet.
Ein eigener lang gezogener Kollisionsmesh verschafft hier Abhilfe. |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
MeshesIntersect![]() - Es lassen sich recht einfach Trefferzonen erstellen. Also bestimmte Objektteile ''empfindlicher'' machen. - Es werden auch solche Kollisionen registriert, wo aufgrund einer schnellen Bewegung zwischen zwei Frames ein Kollisionsobjekt ''durchfeuert'' werden würde. Edit1: Oder so, wie BIG BUG beschreibt. Das langezogene Objekt sollte dann aber mindestens die Länge der Relativgeschwindigkeit zum Zielobjekt haben. |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach sry, falscher Alarm. Ich hatte vergessen, dass mein Objekt (P\mdl) kein Objekt in dem Sinne ist. Da das Ausgangsmodell für P\mdl mit LoadAnimMesh geladen wurde, und aus vielen einzelnen Teilen besteht, muss ich natürlich alle erstmal mit FindChild rausfiltern und dann auf Poly-Poly- Kollision prüfen. Quasi war es so, als wollte ich mit MeshesIntersect einen Pivot auf Überschneidung mit dem Schuss testen. Das geht natürlich nicht, weil ein Pivot keine Polys, ect hat. >_<
(bis ich darauf gekommen bin, hat es aber ganz schön gedauert) Außerdem bin ich mir natürlich voll und ganz bewusst über die Nachteile (aber auch Vorteile ![]() Sry für diesen Thread, aber ich stand echt auffem Schlauch ![]() MFG: Tanki |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group