Um, yeah. I position the object relative to 0,0,0 before locking it on, and all the locking takes place before anything is drawn or the camera is moved. I don't know about the relevance of that though. Note the object is still sensitive to light.
sync on
sync rate 0
hide mouse
autocam off
hide light 0
set ambient light 50
rem Note object's sensitivity to light
make light 1
set point light 1,300,200,300
color light 1,rgb(255,0,0)
set light range 1,2000
make light 2
set point light 2,700,100,200
color light 2,rgb(0,255,0)
set light range 2,2000
make light 3
set point light 3,200,300,700
color light 3,rgb(0,0,255)
set light range 3,2000
Fog off
Fog distance 2000
Fog color RGB(0,0,0)
Color Backdrop RGB(0,0,0)
cls
center text 320,240,"loading"
sync
make object sphere 1,10
rem THIS IS WHERE THE OBJECT IS PLACED. CHANGE THESE TO MOVE THE OBJECT.
position object 1,20,-10,50
rem THIS COMMAND LOCKS AN OBJECT TO THE SCREEN.
lock object on 1
sync
make matrix 1,10000,10000,50,50
do
dx#=dx#+mousemovey()/4
cy#=wrapvalue(cy#+mousemovex()/4)
if dx#>90 then dx#=90
if dx#<-90 then dx#=-90
cx#=wrapvalue(dx#)
set cursor 1,1
print screen fps()
rotate camera cx#,cy#,cz#
oldx#=x#
oldz#=z#
if upkey()=1 then x#=x#+sin(cy#)*15
if upkey()=1 then z#=z#+cos(cy#)*15
if downkey()=1 then x#=x#+sin(cy#+180)*10
if downkey()=1 then z#=z#+cos(cy#+180)*10
if leftkey()=1 then x#=x#+sin(cy#-90)*10
if leftkey()=1 then z#=z#+cos(cy#-90)*10
if rightkey()=1 then x#=x#+sin(cy#+90)*10
if rightkey()=1 then z#=z#+cos(cy#+90)*10
rem Some code to make the object bob up and down when you move.
if oldx#<>x# or oldz#<>z#
abob#=wrapvalue(abob#+10)
endif
if oldx#=x# and oldz#=z#
abob#=curveangle(0,abob#,10)
endif
position object 1,20,-10+(sin(abob#)),50
position camera x#,200+(sin(abob#)*10),z#
sync
loop