将精灵旋转到鼠标位置

时间:2011-02-01 05:38:17

标签: c++ sfml

我一直在使用SFML 1.6库,我想知道。

如何旋转精灵以使其始终转向鼠标在屏幕上的位置?

感谢。

(首选SFML特定代码)

2 个答案:

答案 0 :(得分:8)

如果你有精灵的位置:S =(Sx,Sy)和光标的位置C =(Cx,Cy)

您可以计算向量enter image description here =(Cx - Sx,Cy - Sy)与单位向量之间的角度,例如enter image description here =(1,0,0)。

要计算角度,您可以使用cross product

enter image description here

然后:

enter image description here

然后你计算角度:

enter image description here

最后你旋转你的精灵:

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

答案 1 :(得分:2)

this link的SFML论坛上讨论了这个问题。