Hilfe
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:
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

