Я это делал так. Если кому интересно.
Type TCamera
Field CameraX#,CameraY#
Field GW#,GH#
MethodNew()
GW#=GraphicsWidth()
GH#=GraphicsHeight()
EndMethod
Method GetRenderingCoords(x# Var,y# Var)
x#=GW#/2+x#
y#=GW#/2-y#
EndMethod
Method Refresh()
GW#=GraphicsWidth()
GH#=GraphicsHeight()
EndMethod
Method Position(NewX#,NewY#)
CameraX#=newX#
CameraY#=newY#
EndMethod
Method Move(SpeedX#,SpeedY#)
CameraX#:+SpeedX#
CameraY#:+SpeedY#
EndMethod
EndType