围绕锚点旋转精灵

时间:2012-04-19 18:45:25

标签: ios animation cocos2d-iphone rotation sprite

我有一个精灵:

ombreoeuf1 = [CCSprite spriteWithFile:@"mangeurcentremieu3_03.png" ];
ombreoeuf1.position = ccp(240,160);
[self addChild:ombreoeuf1];

我想在锚点周围不断旋转它。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以先设置属性anchorPoint来设置定位点,例如:

[ombreoeuf1 setAnchorPoint:ccp(0,0)]

然后通过设置另一个属性rotation来设置旋转(以度为单位):

[ombreoeuf1 setRotation:90]

anchorPointrotation都是CCNode class的属性,它是CCSprite的父级。

<强>更新

根据你的评论,似乎你想要的是一个永不停止的旋转精灵?这是一个让精灵每0.1秒旋转10度的例子:

[sprite runAction:[CCRepeatForever actionWithAction:[CCRotateBy actionWithDuration:0.1 angle:10]]];

答案 1 :(得分:0)

CCNode子类的所有转换都是相对于锚点完成的。在所有转换期间,anchorPoint将具有相同的位置。例如,如果您将带有anchorPoint(0.f,0.f)的sprite放置到屏幕左下角的位置(0.f,0.f),然后设置它的比例,例如, 5.f,转换后它会留在左下角,只会变大。因此,所有旋转将自动相对于锚点完成。

还有一件事。 CCSprite默认具有anchorPoint(0.5f,0.5f)和一些内容大小,因此您只需将其设置为另一个以查看转换中的更改。如果你想用CCNode做,你必须将它的relativeToAnchorPoint属性设置为YES并手动设置contentSize。

您可以使用CCRepeatForever操作。例如,

id rotateAction = [CCRepeatForever actionWithAction:[CCRotateBy actionWithDuration: yourDuration 
                                                                             angle: anyAngleForGivenTime]];