don't know if this is what you mean or not, but give it a try:
` setup application
sync on : sync rate 60 : hide mouse
` setup scene
for x = 1 to 5 : make object cube x,10 : position object x,rnd(200),0,rnd(200) : next x
` setup camera
position camera 0,0,0 : set camera range 0.1,5000 : autocam off
` set camera values
camAngY# = 0.0
camAngX# = 0.0
camSpeed# = 10.0
camStepSpeed# = 5.0
do
` camera rotation math
Inc camAngXTemp#, MouseMoveY() ` x angle
camAngX# = curvevalue( camAngXTemp#, camAngX#, camStepSpeed# ) ` smooth x angle
If camAngX# > 80.0 Then camAngX# = 80.0 ` not rotate more than 80 degrees
If camAngX# < -80.0 Then camAngX# = -80.0 ` not rotate less than -80 degrees
camAngYTemp# = WrapValue( camAngYTemp# + MouseMoveX() ) ` y angle
camAngY# = curveangle( camAngYTemp#, camAngY#, camStepSpeed# ) ` smooth y angle
` camera movement math
If KeyState(17)
camPosXTemp# = NewXValue( camPosXTemp#, camAngY#, camSpeed# )
camPosZTemp# = NewZValue( camPosZTemp#, camAngY#, camSpeed# )
EndIf
If KeyState(31)
camPosXTemp# = NewXValue( camPosXTemp#, camAngY#, camSpeed# *-1 )
camPosZTemp# = NewZValue( camPosZTemp#, camAngY#, camSpeed# *-1 )
EndIf
CamPosX# = curvevalue( camPosXTemp#, camPosX#, camStepSpeed# ) ` smooth x position
CamPosZ# = curvevalue( camPosZTemp#, camPosZ#, camStepSpeed# ) ` smooth z position
` camera update
Rotate Camera camAngX#, camAngY#, 0.0
Position Camera CamPosX#, CamPosY#, CamPosZ#
sync : loop