vampyre, with regards to Debbie... She was only trying to help, she has used DarkBASIC for a while, she is a competent coder, and has read through the tutorials ( as she has pointed specific ones out to people on these very forums ). I think she, like me, completely misunderstood your problem...
Now that I know what you're after, I have a snippet right here in my Projects folder that is what you're after ( i answered a similar Q once upon a time )...
Alright, so I can't find the snippet, but here's one I just wrote...
`**********************************************************
`* Coded By JessTicular ( Jess Telford ) *
`* *
`* Controls; *
`* Camera Control; *
`* Left Key ... Turn Left *
`* Right Key ... Turn Right *
`* Up Key ... Increase Forward Velocity *
`* Down Key ... Increase Backward Velocity *
`* *
`* Cockpit Control; *
`* 'a' ... Look Left *
`* 'd' ... Look Right *
`* 'w' ... Look Down ~ Not working... *
`* 's' ... Look Up ~ Not working... *
`* *
`**********************************************************
`Set-up
Sync On : Sync Rate 60
BackDrop On : Color BackDrop RGB(0,0,255)
Draw To Front
Ink RGB(255,50,50),0
`Visual reference
Make Matrix 1,1000,1000,10,10
UpDate Matrix 1
`Virtual HUD
Make Object Cube 1,10
Scale Object 1,100,50,200
Set Object 1,1,1,0
Ghost Object On 1
`Set Up Camera
Position Camera 0,50,0
`Set up HUD move/look variables
speed# = 0.0 : `The movement speed
yacam# = 0.0 : `The yangle of the HUD
yalook# = yacam# : `The yangle of the camera look
zalook# = 0.0 : `The zangle of the camera look
Do
yacam# = _move_right_left(yacam#,1.0)
speed# = _move_fore_back(speed#,0.2)
yalook# = _look_right_left(yalook#,1.0)
` zalook# = _look_up_down(zalook#,1.0)
_update_cam(speed#,yacam#,yalook#,zalook#)
_update_hud(1,yacam#)
_debug(speed#,yacam#,yalook#)
If InKey$() = "r" Then yalook# = 0 : zalook# = 0 : speed# = 0 : yacam# = 0 : Position Camera 0,50,0
Sync
Loop
Function _update_cam(speed#,yacam#,yalook#,zalook#)
`Simple movement based on the angle that the HUD is facing
camx# = NewXValue(Camera Position X(),yacam#,speed#)
camz# = NewZValue(Camera Position Z(),yacam#,speed#)
Position Camera camx#,Camera Position Y(),camz#
`Rotation of the camera.
YRotate Camera WrapValue(yacam# + yalook#)
ZRotate Camera zalook#
EndFunction
Function _update_hud(obj,yacam#)
`Positions the virtual HUD where the camera is
Position Object obj,Camera Position X(),Camera Position Y(),Camera Position Z()
YRotate Object obj,yacam#
EndFunction
Function _move_right_left(yacam#,stepval#)
`Icriments/Decrements the values for the HUD angle
If RightKey() = 1 Then yacam# = WrapValue(yacam# + stepval#)
If LeftKey() = 1 Then yacam# = WrapValue(yacam# - stepval#)
EndFunction yacam#
Function _move_fore_back(speed#,stepval#)
`Inriments/Decrements the speed the camera is moving with
If UpKey() = 1 Then speed# = speed# + stepval#
If DownKey() = 1 Then speed# = speed# - stepval#
EndFunction speed#
Function _look_right_left(yalook#,stepval#)
If InKey$() = "d" Then yalook# = WrapValue(yalook# + stepval#)
If InKey$() = "a" Then yalook# = WrapValue(yalook# - stepval#)
EndFunction yalook#
Function _look_up_down(zalook#,stepval#)
If InKey$() = "w" Then zalook# = WrapValue(zalook# + stepval#)
If InKey$() = "s" Then zalook# = WrapValue(zalook# - stepval#)
EndFunction zalook#
Function _debug(speed#,yacam#,yalook#)
`Some Debugging info.
Text 0,0,"Frame Rate; " + Str$(Screen FPS())
Text 0,20,"Speed; " + Str$(speed#)
Text 0,40,"Flight Angle; " + Str$(yacam#)
Text 0,60,"Cockpit Angle ( Realtive To Flight Angle ); " + Str$(yalook#)
Text 0,80,"Cockpit Angle ( Relative To World ); " + Str$(WrapValue(yacam# + yalook#))
Text 0,120,"Press 'r' To reset All Variables"
EndFunction
It's long, yeah, But that's just cos I had to set it all up...
If you use DarkEDIT, and enable Globals, alot of those functions can be combined.
Hope I Helped This Time

Jess.

Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy