Woops, this will fix it,
a=1
menu:
do
text 250,275,"Play Game":if mousex()>=250 and mousex()<=325 and mousey()>=275 and mousey()<=275+text height("Play Game")
ink rgb(0,0,200),0:if mouseclick()=1:exit:gosub game:endif:else:ink rgb(0,0,200),0:endif
text 350,275,"Options":if mousex()>=350 and mousex()<=400 and mousey()>=275 and mousey()<=275+text height("Options")
ink rgb(0,0,200),0:if mouseclick()=1:d=1:gosub optionsgame:endif:else:ink rgb(0,0,200),0:endif
text 450,275,"end game":if mousex()>=450 and mousex()<=525 and mousey()>=275 and mousey()<=275+text height("end game")
ink rgb(0,0,200),0:if mouseclick()=1:end:endif:else:ink rgb(0,0,200),0:endif:sync:loop
return
optionsgame:
if d=1 then gosub options:else:gosub game
return
options:
if a=1 then print "game options:";:print " option1";:print " option2" : a=2
return
game:
cls
sync on
sync rate 30
hide mouse
make matrix 1,100.0,100.0,25,25
make object sphere 1,3
position object 1,X#,Y#+1,Z#
do
Y# = Object position Y(1)
X# = Object position X(1)
Z# = Object position Z(1)
aY# = Object angle Y(1)
cZ# = Newzvalue(Z#,aY#-180,10)
cX# = Newxvalue(X#,aY#-180,10)
cY# = Get Ground Height(1,X#,Z#)+5
if upkey()=1 then move object 1,0.5
if downkey()=1 then move object 1,-0.5
if leftkey()=1 then Yrotate object 1,wrapvalue(aY#-5)
if rightkey()=1 then Yrotate object 1,wrapvalue(aY#+5)
position camera cX#,10,cZ#
point camera X#,5,Z#
sync
loop
return
i hope this will help you a lot, i can help you with your game, if it is gona be an rpg or 3rd person, i don't know anything about first-person, so i can't help you with that.