Wert=MESHESINTERSECT (Mesh1, Mesh2)


BeschreibungBlitz3D
Der Befehl MESHESINTERSECT prüft, ob zwei Gitterobjekte (mesh) sich gerade kreuzen. Falls dies der Fall ist, dann wird der Wert 1 zurückgeliefert. Andernfalls wird nur 0 zurückgeliefert.

Achtung: Dies ist die einzige Kollisionsroutine, die Polygon/Polygon-Kollision zwischen zwei Objekten feststellen kann. Allerdings ist der Rechenaufwand dafür so hoch, dass es zu langsam sein kann. Darum benutze es mit Vorsicht.


Parameter
Mesh1=Identität des ersten Gitterobjekts
Mesh2=Identität des zweiten Gitterobjekts


Rückgabewert
0=keine Kollision
1=Kollision


Beispiel
Dieses Programm lädt zwei Objekte. Wenn diese Objekte kollidieren, dann wird ein Text angezeigt:

GRAPHICS3D 640,480
SETBUFFER BACKBUFFER()
camera=CREATECAMERA()
light=CREATELIGHT()
ROTATEENTITY light,90,0,0
drum=LOADMESH("media/oil-drum/oildrum.3ds")
POSITIONENTITY drum,-20,0,100
crate=LOADMESH("media/wood-crate/wcrate1.3ds")
POSITIONENTITY crate,20,0,100

WHILE NOT KEYHIT(1)
   TURNENTITY drum,1,1,1
   TURNENTITY crate,-1,-1,-1
   RENDERWORLD
   IF MESHESINTERSECT(drum,crate)=1 THEN TEXT 0,0,"Kollision"
   FLIP
WEND
END


Siehe auch
COLLISIONS, ENTITYCOLLIDED