ENTITYRADIUS Entity, Radius#


BeschreibungBlitz3D
Die Anweisung ENTITYRADIUS definiert eine kugelförmige Kollisionsfläche für ein Objekt.

In BlitzBasic gibt es zwei definierbare Kollisionsflächen: Quader (ENTITYBOX) und Kugel (ENTITYRADIUS). Hat man die Kollisionsfläche gewählt, dann kann man noch zusätzlich mit dem Befehl ENTITYTYPE den Kollisionstyp einstellen. Mit dem Befehl COLLISIONS wird die Kollisionsprüfung aktiviert.


Parameter
Entity=Identität eines Objekts (entity)
Radius=Radius der Kollisionsfläche


Rückgabewert
-


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)
   NEXT
   FLIP
WEND
END


Siehe auch
COLLISIONS, ENTITYBOX, ENTITYTYPE