Zeit#=COLLISIONTIME# (Entity, Index)


BeschreibungBlitz3D
Die Funktion COLLISIONTIME ermittelt die Zeit, die für eine Kollisionsberechnung benötigt wird.

Dabei muss man zuerst die Identität des ersten Entity-Objekts angeben. Da ein Objekt mit mehreren anderen Objekten gleichzeitig kollidieren kann, muss man die Indexnummer angeben. Dieser Index kann nur von 1 bis COUNTCOLLISIONS reichen.


Parameter
Entity=Identität eines Objekts (entity)
Index=Index der Kollisions-Liste (1 bis COUNTCOLLISIONS)


Rückgabewert
Zeit in Millisekunden, die eine Kollisionsberechnung andauert.


Beispiel
Erstellt einige Objekte. Die Kugel kann verschoben werden. Kollidierte Objekte werden angezeigt:

GRAPHICS3D 640,480
SETBUFFER BACKBUFFER()
camera=CREATECAMERA()
ROTATEENTITY camera,45,0,0
POSITIONENTITY camera,0,15,-10
light=CREATELIGHT()
ROTATEENTITY light,45,0,0

sphere=CREATESPHERE(32)
ENTITYTYPE sphere,1
ENTITYRADIUS sphere,1
POSITIONENTITY sphere,0,11,0

cube=CREATECUBE()
ENTITYTYPE cube,2
ENTITYCOLOR cube,0,100,0
POSITIONENTITY cube,0,-5,0
SCALEENTITY cube,10,10,10

cylinder=CREATECYLINDER(32)
ENTITYTYPE cylinder,2
ENTITYCOLOR cylinder,255,0,0
POSITIONENTITY cylinder,0,7,0
SCALEENTITY cylinder,2,2,2

WHILE NOT KEYDOWN(1)
   x#=0
   y#=0
   z#=0
   IF KEYDOWN(203)=1 THEN x#=-0.1
   IF KEYDOWN(205)=1 THEN x#=0.1
   IF KEYDOWN(208)=1 THEN z#=-0.1
   IF KEYDOWN(200)=1 THEN z#=0.1
   MOVEENTITY sphere,x#,-0.1,z#
   COLLISIONS 1,2,2,2
   UPDATEWORLD
   RENDERWORLD
   col=COUNTCOLLISIONS(sphere)
   TEXT 0,0,"Kollision(en):"
   FOR i=1 TO col
      TEXT 000,i*20,"Entity="+COLLISIONENTITY(sphere,i)
      TEXT 150,i*20,"Surface="+COLLISIONSURFACE(sphere,i)
      TEXT 300,i*20,"Triangle="+COLLISIONTRIANGLE(sphere,i)
      TEXT 450,i*20,"Zeit="+COLLISIONTIME(sphere,i)
   NEXT
   FLIP
WEND
END


Siehe auch
COLLISIONS, COLLISIONSURFACE, COLLISIONTRIANGLE