Darkbasic has a wonderful built in feature for this. It goes as follows:
x = newxvalue(x,angle,speed)
z = newzvalue(z,angle,speed)
position object 1,x,y,z
Here's the full code:
sync on : sync rate 30 : hide mouse : set camera range 1,10000000000000
make matrix 1,10000,10000,25,25
make object cone 1,50
xrotate object 1,90
fix object pivot 1
y = 25
x = 5000
z = 100
position camera 5000,500,0
do
point camera x,y,z
speed = 0
if upkey()=1 then speed = 25
if downkey()=1 then speed = -25
if leftkey()=1 then angle = wrapvalue(angle - 5)
if rightkey()=1 then angle = wrapvalue(angle + 5)
yrotate object 1,angle
x = newxvalue(x,angle,speed)
z = newzvalue(z,angle,speed)
position object 1,x,y,z
sync
loop
Hope this helps
I am who I am