This bug occurs on B3D versions 1.88 and after. I have tested on more than one PC and it has been confirmed by others on these forums.
Main PC spec: P4 / 2.4GHz / 1GB RAM / ATI Radeon 9800 Pro / Win XP SP2
Description: Extraneous collisions are added by Blitz when using elipsoid/sphere to box collisions. It is difficult to determine the exact commonalities of the "wrong" collisions, but the code below replicates the problem 100% of the time. The bullet moves in the opposite direction to the block, yet collides with the block after less than 2 seconds or so.
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
Main PC spec: P4 / 2.4GHz / 1GB RAM / ATI Radeon 9800 Pro / Win XP SP2
Description: Extraneous collisions are added by Blitz when using elipsoid/sphere to box collisions. It is difficult to determine the exact commonalities of the "wrong" collisions, but the code below replicates the problem 100% of the time. The bullet moves in the opposite direction to the block, yet collides with the block after less than 2 seconds or so.
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