эта задача не из простых (как кажется), во первых нужно искать кротчайший путь поворота на заданный градус (что я не сделал), потом ввести дополнительные переменные, в одной хранить угол (можно прямо из спрайта брать) а другая для цели поворота...
graphics3d 800,600,32,2
setbuffer backbuffer()
camera=createcamera()
positionentity camera,20,20,-50
rotateentity camera,20,20,0
rotateentity createlight(),40,20,0
Player=createcube()
scaleentity player,1,1,5
PA#=0
PA1#=PA#
repeat
if keydown(200) then PA1=0
if keydown(208) then PA1=180
if keydown(203) then PA1=90
if keydown(205) then PA1=270
if pa1<pa
pa=pa-2
elseif pa1>pa
pa=pa+2
endif
if pa1=pa and (keydown(200) or keydown(208) or keydown(203) or keydown(205)) then moveentity player,0,0,1
rotateentity player,0,PA#,0
renderworld
flip
until keyhit(1)
end