Hello all. I've deduced that the collision bug is occurring on B3D versions 1.88 and after. This, however, seems to be contrary to what a couple of you are saying. On b32's advice, I've created a more concise program which doesn't have timing code, contains just one bullet and one block, and the error occurs 100% of the time on my PCs. One peculiar thing I noticed is that if I change the speed of the bullet, the collision occurs when the bullet is in a different position. However, it DOES seem to occur all the time, and always pretty quickly unless you slow down the bullet speed dramatically. I would be grateful to anyone who can give this a quick test to confirm that the block at the top disappears from a non-existent collision (collision should occur in less than a couple of seconds from starting unless your PC is incredibly slow). I'd especially be interested in b32 and Stevie G's results as you guys didn't see the bug.
Graphics3D 800,600,0,2
col_bullet=1
col_block=2
SetBuffer BackBuffer()
Global camera=CreateCamera()
CameraViewport camera,0,0,800,600
CameraRange camera,1,1000
PositionEntity camera,0,30,-10
RotateEntity camera,70,0,0
light=CreateLight()
AmbientLight(150,150,150)
bullet=CreateSphere()
ScaleEntity bullet,0.5,0.5,0.5
EntityType bullet,col_bullet
EntityRadius bullet,1
HideEntity bullet
block=CreateCube()
ScaleEntity block,1,0.5,0.5 ; block is now 2x1x1
EntityType block,col_block
EntityBox block,-1,-0.5,-0.5,2,1,1
HideEntity block
PositionEntity block,12,0,12
ShowEntity block
ResetEntity block
ShowEntity bullet
ResetEntity bullet
RotateEntity bullet,0,134.8,0
Collisions col_bullet,col_block,3,1
While Not KeyHit(1)
MoveEntity bullet,0,0,0.25
collidedblock=EntityCollided(bullet,col_block)
If collidedblock Then
If collidedblock=block Then
FreeEntity block
End If
End If
UpdateWorld
RenderWorld
Flip
Wend
End
Graphics3D 800,600,0,2
col_bullet=1
col_block=2
SetBuffer BackBuffer()
Global camera=CreateCamera()
CameraViewport camera,0,0,800,600
CameraRange camera,1,1000
PositionEntity camera,0,30,-10
RotateEntity camera,70,0,0
light=CreateLight()
AmbientLight(150,150,150)
bullet=CreateSphere()
ScaleEntity bullet,0.5,0.5,0.5
EntityType bullet,col_bullet
EntityRadius bullet,1
HideEntity bullet
block=CreateCube()
ScaleEntity block,1,0.5,0.5 ; block is now 2x1x1
EntityType block,col_block
EntityBox block,-1,-0.5,-0.5,2,1,1
HideEntity block
PositionEntity block,12,0,12
ShowEntity block
ResetEntity block
ShowEntity bullet
ResetEntity bullet
RotateEntity bullet,0,134.8,0
Collisions col_bullet,col_block,3,1
While Not KeyHit(1)
MoveEntity bullet,0,0,0.25
collidedblock=EntityCollided(bullet,col_block)
If collidedblock Then
If collidedblock=block Then
FreeEntity block
End If
End If
UpdateWorld
RenderWorld
Flip
Wend
End