将精灵旋转到鼠标位置

Lem*_*ons 3 c++ sfml

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

如何旋转精灵以便它总是转向鼠标在屏幕上的位置?

谢谢.

(首选SFML特定代码)

Gha*_*uni 8

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

您可以计算矢量之间的角度 在此输入图像描述 =(Cx-Sx,Cy-Sy)和单位矢量 在此输入图像描述 =(1,0,0).

要计算角度,您可以使用叉积:

在此输入图像描述

然后 :

在此输入图像描述

然后你计算角度:

在此输入图像描述

最后你旋转你的精灵:

Sprite.SetRotation(alpha); //alpha in degree
Run Code Online (Sandbox Code Playgroud)