Question

I've been using the SFML 1.6 library, and I'd like to know.

How does one rotate a sprite so it always turns toward where the mouse is located on screen?

Thanks.

(SFML specific code is preferred)

Was it helpful?

Solution

If you have the position of the sprite : S = (Sx, Sy) and the position of the cursor C = (Cx, Cy)

You can calculate the angle between the vector enter image description here = (Cx - Sx, Cy - Sy) and a unit vector for example enter image description here = (1, 0, 0).

To calculate the angle you can use the cross product :

enter image description here

And then :

enter image description here

then you calculate the angle :

enter image description here

Finally You rotate your sprite :

Sprite.SetRotation(alpha); //alpha in degree

OTHER TIPS

There is discussion of this on the SFML forum at this link.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top