Hilfe

EntityType

B3D

Aufruf

EntityType entity%, typ% [, rekursiv%]

Parameter

entity% Identität eines Objekts (entity)
typ% Beliebiger Kollisionstyp
rekursiv% 0=nur auf dieses Objekt anwenden (standard)
1=auch auf angefügte Objekte anwenden


Rückgabewert

-


Beschreibung

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.


Beispiel

Standardbeispiel:

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

Collisions 1, 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#
   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, EntityBox, EntityCollided, EntityRadius, GetEntityType

Übersicht 3D Grafik Kollision