# How can I make a sprite move in the direction it's facing using radians?

I am using PGELua for the PlaystationPortable. I would just like to know how to make a 2D sprite move in the direction that the sprite is facing.

When the sprite is blitted to the screen it should be heading down the y axis (like it's moving up the screen) but it doesn't appear to be working that way. As far as I am aware, the angles of the images use radians for the rotations.

I have this in a function

``````function FUNC_MOVE_SHIP(speed,angles)
VAR_SHIPX = VAR_SHIPX + pge.math.sin(angles) * speed
VAR_SHIPY = VAR_SHIPY + pge.math.cos(angles) * speed
end
``````

and I call it in my main program like

``````    FUNC_ST_DR()
if pge.controls.held(PGE_CTRL_LEFT) then
VAR_SHIP_ANGLE=VAR_SHIP_ANGLE-0.01
elseif pge.controls.held(PGE_CTRL_RIGHT) then
VAR_SHIP_ANGLE=VAR_SHIP_ANGLE+0.01
end
SHIP_11:activate()
FUNC_EN_DR()
``````
-
How DOES it appear to be working? – aaaaaaaaaaaa Jan 9 '12 at 23:11

As you can see, it starts at `0` on the right of the circle and goes counter-clockwise around the circle until it hits `2 * PI`. So if your sprite isn't pointing to the right with a rotation of 0, you might have to add some constant. Eg. if your sprite is pointing up, you have to add `PI * 0.5` to the calculated angle. Also, instead of adding and subtracting `0.01` from the angle, I'd rather choose some fraction of PI instead. Eg. `PI / 90` equals 2 degrees of rotation per update.