围绕特定点旋转CCSprite?

时间:2010-12-16 23:12:22

标签: iphone ios4 cocos2d-iphone

如何围绕特定点而不是中心点旋转精灵?

CCSprite旋转或CCRotateTo动作围绕中心点旋转。

我正在尝试旋转脸部的图像。围绕中心(鼻子)旋转的效果不如在略低于中心(下巴)的点周围旋转。

在Photoshop中,可以更改旋转的锚点。可以在cocos2d-iphone中完成吗?

2 个答案:

答案 0 :(得分:1)

最明显的方法是扩大精灵的大小。

如果高度是50px,当前中心旋转点是中间(25px),并且你想要它是30px,只需在photoshop中放大你的精灵画布,这样图像就可以获得10px的透明空间在底部。

希望这有助于解决您的问题,我从未在cocos2d中看到过旋转的锚点参考。

答案 1 :(得分:0)

您应该相应地更改您的anchorPoint。

AnchorPoint将成为ccsprite旋转的中心,它从左下角(0.0,0.0)开始到右上角(1,1)。要计算它,获取相对于ccsprite的点位置,并除以精灵大小:

//anchorPoint position
float x = myRotationPosition.x/ mySprite.width;
float y = myRotationPosition.y/ mySprite.height;
mySprite.anchorPoint = cpp(x,y);
//rotate mySprite based on new anchorPoint
mySprite.rotation = 90;

希望有所帮助