将精灵旋转到鼠标位置

发布于 2024-10-15 12:40:32 字数 96 浏览 5 评论 0原文

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

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

谢谢。

(SFML具体代码优先)

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

德意的啸 2024-10-22 12:40:32

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

你可以计算向量 在此处输入图像描述 = (Cx - Sx, Cy - Sy) 和单位向量,例如 在此处输入图像描述 = (1, 0, 0)。

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

在此处输入图像描述

然后:

在此处输入图像描述

然后你计算角度:

在此处输入图像描述

最后你旋转你的精灵:

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

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文