Как то так... Я просто таким не страдал поэтому может можно и проще сделать.
Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
Global cube = CreateCube()
EntityPickMode cube,2
EntityColor cube,255,0,0
RotateEntity cube,20,20,20
PositionEntity cube,0,0,15
Global light = CreateLight()
RotateEntity light,90,0,0
Global cam = CreateCamera()
Global Pick,Pick2
While Not KeyHit(1)
Update()
mouselook(cam)
RenderWorld()
Flip
Wend:End
Function Update()
Pick = CameraPick (cam,MouseX(),MouseY())
If Pick = cube Then
EntityColor cube,0,255,0
Else
EntityColor cube,255,0,0
EndIf
If MouseDown (1) Then
Pick2 = CameraPick (cam,MouseX(),MouseY())
If Pick2 = cube Then
EntityColor cube,255,0,0
MoveEntity cube,0,.5,0
EndIf
EndIf
End Function
Function mouselook(ent) ; Функция обзора мышью
mxspd#=MouseXSpeed()*0.25
myspd#=MouseYSpeed()*0.25
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
campitch#=EntityPitch(ent)+myspd#
If campitch#<-85 Then campitch#=-85 ; ограничения поворота
If campitch#>85 Then campitch#=85
RotateEntity ent,campitch#,EntityYaw(ent)-mxspd#,EntityRoll(ent)
End Function