Kollision=ENTITYCOLLIDED (Entity, Type)


BeschreibungBlitz3D
Die Funktion ENTITYCOLLIDED liefert die Identität eines Objekts zurück, das mit einem ausgewählten Objekt kollidiert ist. Wenn nur eine 0 zurückgeliefert wird, dann gab es keine Kollision.

Dazu muss man nur die Identität eines Objekts (entity) angeben. Type ist eine einfache Zahl, die mit ENTITYTYPE gesetzt werden kann. BlitzBasic benutzt diese EntityTypes dann um die Kollision eines Objekts mit anderen zu überprüfen.

Siehe auch den Befehl COLLISIONS.


Parameter
Entity=Identität eines Objekts (entity)
Type=Objekttyp, das auf Kollision überprüft werden soll


Rückgabewert
Es wird die Identität eines kollidierten Objekts zurückgeliefert. Wird 0 zurückgeliefert, dann gab es keine Kollision.


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):"
   TEXT 300,0,"1. Kollision mit:"+ENTITYCOLLIDED(sphere,2)
   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)
   NEXT
   FLIP
WEND
END


Siehe auch
COLLISIONS, ENTITYDISTANCE, ENTITYPICK, ENTITYTYPE