| |||||||||
Die Anweisung ENTITYTYPE stellt den Kollisionstyp eines Objekts ein. Damit nicht erst alle Objekte auf Kollision überprüft werden müssen (was einen enorm großen Rechenaufwand darstellt), können nur bestimmte Kollisionsgruppen ausgewählt werden. Die Gruppe wird mit diesem Befehl definiert, indem jedem Objekt ein Kollisionstyp zugeordnet wird. Der Parameter "Entity" gibt die Identität eines Objekts an. Der Parameter "Typ" kann eine beliebige Integerzahl sein. Wird mit dem optionalen Parameter "Rekursiv" der Wert 1 übergeben, dann wird allen angefügten Objekten (children entity) dieser Kollisionstyp zuweisen. Standardmäßig ist es aber 0. | |||||||||
Parameter | |||||||||
| |||||||||
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, ENTITYRADIUS |