Вот, что получилось:

Graphics3D 640,480
SetBuffer BackBuffer()
Const t_player=1, t_block=2
Type doors
Field ent
End Type
player=CreateSphere()
EntityType player, t_player
cam=CreateCamera(player)
bl=CreateCube()
PositionEntity bl,0,0,5
EntityType bl, t_block
HideEntity bl
Collisions t_player, t_block,2,3
Dim AllDoors.doors(3)
For i=0 To 3
AllDoors(i) = New doors
AllDoors(i)\ent = CopyEntity(bl)
Next
PositionEntity AllDoors(0)\ent,10,0,0
PositionEntity AllDoors(1)\ent,5,0,0
PositionEntity AllDoors(2)\ent,0,0,0
PositionEntity AllDoors(3)\ent,-5,0,0
While Not KeyDown(1)
For i=0 To 3
If EntityCollided(player,t_block)
MoveEntity AllDoors(i)\ent,0,0.2,0
EndIf
Next
TurnEntity player, 0, 0 -MouseXSpeed()*0.1, 0
TurnEntity cam, MouseYSpeed()*0.1, 0, 0
MoveMouse GraphicsWidth()/2, GraphicsHeight()/2
RotateEntity cam, EntityPitch#( cam ), 0, 0
If KeyDown(17) MoveEntity player,0,0,0.5
If KeyDown(31) MoveEntity player,0,0,-0.5
If KeyDown(30) MoveEntity player,-0.5,0,0
If KeyDown(32) MoveEntity player,0.5,0,0
UpdateWorld()
RenderWorld()
Flip
Wend
End
Вот только при соприкосновении с любым блоком двигаются все...
Что не так?