# Rotating sprites

Is there a way I can rotate a sprite to face where I touched?

So my sprite rocket can fight enemies in 360 degrees.

Try this

``````
function setup()
tpos=vec2(WIDTH/2,HEIGHT/2)
shippos=vec2(WIDTH/2,HEIGHT/2)
end

function draw()

background(0)
pushMatrix()
translate(shippos.x,shippos.y)
rotate(angleBetween(shippos,tpos))
spriteMode(CENTER)
sprite("Space Art:Red Ship",0,0)
popMatrix()
-- do the rest of your drawing here
end

function touched(touch)
tpos=vec2(touch.x,touch.y)
end

function angleBetween(ptA,ptB)
local angle=math.deg(math.atan2(ptA.y-ptB.y,ptA.x-ptB.x))
angle = angle + 90
return angle
end

``````

Great! Thanks @Coder

@Coder Instead of hand-coding an angleBetween function (using trigonometry), you can just use vec2.angleBetween.

``````rotate(shippos:angleBetween(tpos))
``````

I thought that got the angle between two directional vectors but you could have vec2(0,1):angleBetween(tpos) but that would only work if the ship was a the origin (you could use translate)