Hilfe

EntityCollided

B3D

Aufruf

kollision% = EntityCollided (entity%, type%)

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.


Beschreibung

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.


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

CollisionEntity, Collisions, CountCollisions, EntityDistance, EntityPick, EntityType, MeshesIntersect

Übersicht 3D Grafik Kollision