Morganolla, снова лишние операции.
Global wW=640,wH=640
Graphics3D wW,wH,32,2
SetBuffer BackBuffer()
player = CreatePivot()
camera = CreateCamera(player)
PositionEntity camera,0,1.5,0
pol = CreateTerrain(1)
PositionEntity pol,0,-1,0
ScaleEntity pol,32,32,32
For x=1 To 10
cub = CreateCube()
PositionEntity cub,Rand(0,32),0,Rand(0,32)
EntityColor cub,Rand(0,255),Rand(0,255),Rand(0,255)
Next
CamPitch=0
CamSensivity#=.3
CamSpeed#=.05
MoveMouse wW/2.0,wH/2.0
While Not KeyDown(1)
IKdUp=KeyDown(200)
IKdDown=KeyDown(208)
IKdLeft=KeyDown(203)
IKdRight=KeyDown(205)
mX=MouseXSpeed()
mY=MouseYSpeed()
MoveMouse wW/2.0,wH/2.0
TurnEntity player,0,-mX*CamSensivity,0
CamPitch=CamPitch+mY*CamSensivity
If Abs(CamPitch)>70 CamPitch=Sgn(CamPitch)*70
RotateEntity camera,CamPitch,EntityYaw(camera),0
MoveEntity player,(IKdRight-IKdLeft)*CamSpeed,0,(IKdUp-IKdDown)*CamSpeed
UpdateWorld
RenderWorld
Text 10,10,CamPitch
Flip 0
Wend
End
Вот теперь, логически правильно, а багов не вылезет.
ЗЫ, ограничивать вниз на 25 градусов, весьма бесюче, и заметь, что везде от этого отказываются.