如何让精灵旋转到触摸Cocos2d

发布于 2024-11-15 07:04:47 字数 87 浏览 5 评论 0原文

我有一个箭头精灵,它用于我的 Cocos2d 游戏中的瞄准目的。因此,我希望它指向用户触摸屏幕的位置。如何对精灵的旋转进行编程,使其旋转到用户的触摸位置?谢谢!

I have an arrow sprite, and it is for aiming purposes in my Cocos2d game. Therefore, I want it to point to where the user touches the screen. How do I program the rotation of the sprite so it will rotate to the user's touch location? Thanks!

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

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

发布评论

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

评论(2

故乡的云 2024-11-22 07:04:47

我之前实际上没有这样做过,但我已经根据您的需要调整了一些代码(使敌方船面向玩家船)。希望这是正确的。

//rotate to face the touch
CGPoint diff = ccpSub(sprite.position, touch.position);
float angleRadians = atanf((float)diff.y / (float)diff.x);

float angleOffset = CC_DEGREES_TO_RADIANS(90);

if(diff.x < 0)
{
    angleRadians += angleOffset;
}
else
{
    angleRadians -= angleOffset;
}

PengOne 的答案(顺便说一句,很酷的名字)很棒,我投票赞成,因为你应该利用它。

I haven't actually done this before, but I have adapted some of my code (that makes a enemy ship face the player ship) to what you need. Hopefully this is correct.

//rotate to face the touch
CGPoint diff = ccpSub(sprite.position, touch.position);
float angleRadians = atanf((float)diff.y / (float)diff.x);

float angleOffset = CC_DEGREES_TO_RADIANS(90);

if(diff.x < 0)
{
    angleRadians += angleOffset;
}
else
{
    angleRadians -= angleOffset;
}

PengOne's answer (cool name BTW) was great though and I am voting it up because you should make use of it.

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