0

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

4

2 回答 2

1

这些教程可能会有所帮助:

http://www.learn-cocos2d.com/knowledge-base/cocos2d-iphone-faq/learn-cocos2d-public-content/manual/cocos2d-general/14826-how-to-rotate-a-sprite-in-圆形运动/

http://www.raywenderlich.com/2343/how-to-drag-and-drop-sprites-with-cocos2d

此外,这个问题在此处被询问(使用代码)并回答(使用更多代码):Rotating Sprite with Touch - Cocos2d

于 2011-06-13T23:49:49.423 回答
0

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

//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 的回答(很酷的名字顺便说一句)很棒,我投票赞成,因为你应该利用它。

于 2011-06-16T11:38:49.597 回答