Hilfe

CollisionEntity

B3D

Aufruf

entity% = CollisionEntity (entity%, index%)

Parameter

entity% Identität eines Objekts (entity)
index% Index der Kollisions-Liste (1 bis CountCollisions)


Rückgabewert

Identität eines Entitys, das mit diesem Entity kollidierte.


Beschreibung

Die Funktion CollisionEntity liefert die Identität eines Entitys, das mit einem anderen Entity kollidiert ist.

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.


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):"
   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, CollisionSurface, CollisionTriangle, CountCollisions, EntityCollided

Übersicht 3D Grafik Kollision