You're talking about movement like in the old atari game asteroids I take it.
Well, I'll try and right a quick demo down below (might be a little buggy, sorry).
`Create a Spaceship structure
Type SpaceShip
`actual x/y coords
x
y
`'sliding' x/y coords
xs
ys
`Current YAW (or yrotation)
dir
endtype
`Make ourselves a spaceship!
Andromida as Spaceship
Do
Goto Move_Player
Goto Andromida_Player_Control
Loop
`Player junk
Move_Player:
`This is updates the ships position by its thrust
Andromida.x = Andromida.x + Andromida.xs
Andromida.y = Andromida.y + Andromida.ys
Return
`Now the nitty gritty math stuff
`Grab the Input and thrust accordingly
Andromida_Player_Control:
`thrust is held in xs and ys
if upkey() = 1 then
Andromida.xs = Andromida.xs + cos(wrapvalue(Andromida.dir))
Andromida.ys = Andromida.ys - sin(wrapvalue(Andromida.dir))
endif
Return
Our Space explorer, the Andromida, uses the Spaceship structure's .xs and .ys variables to hold thrust in both the x and y position. On every loop the Andromida's x and y position incremented (or decremented depending on if it's negative or posative thrust) by .xs and .ys.
All you have to do to test this is slap an object onto the structure by setting the objects position to Andromida.x and Andromida.y and setting the object's yangle to Andromida.dir.
Feel free to use the above for anything. Hope it helps; if the example doesn't work withought minimal debug and/or change then simply respond to this thread starting with something like "Wendigo, you are an idiot. Do it again!" And I'll write a new one that I'll actually test and then repost.
Hope everything works out for yuh!