`try this
do
cubeY#=Object angle Y(1)
x#=object position x(1)
y#=object position y(1)
z#=object position z(1)
if upkey()=1 or downkey()=1 or leftkey()=1 or rightkey()=1 then usercursor=1
if upkey()=1
x# = newxvalue(x#,wrapvalue(camera angle y()),1)
z# = newzvalue(z#,wrapvalue(camera angle y()),1)
endif
if downkey()=1
x# = newxvalue(x#,wrapvalue(camera angle y()-180),1)
z# = newzvalue(z#,wrapvalue(camera angle y()-180),1)
endif
if leftkey()=1
x# = newxvalue(x#,wrapvalue(camera angle y()-90),1)
z# = newzvalue(z#,wrapvalue(camera angle y()-90),1)
endif
if rightkey()=1
x#=newxvalue(x#,wrapvalue(camera angle y()+90),1)
z#=newzvalue(z#,wrapvalue(camera angle y()+90),1)
endif
y#=get ground height(1,y#,z#)+50
position object 1,x#,y#,z#
`camera commands
cx#=object position x(1)
cy#=object position y(1)
cz#=object position z(1)-150
camY#=camera angle Y()
distance#=150
backarea#=50
`player farer than camera
position camera cx#,cy#,cz#
` point camera x#,y#,z#
` yrotate camera camY#
ink RGB(0,230,100),RGB(0,0,0)
set cursor 0,0
print "playerx=",x#," point limit is ",x#-distance
print "playerz=",z#," point limit is ",z#-distance
sync
loop
You can do it if you try