我有一个精灵:
ombreoeuf1 = [CCSprite spriteWithFile:@"mangeurcentremieu3_03.png" ];
ombreoeuf1.position = ccp(240,160);
[self addChild:ombreoeuf1];
我想在锚点周围不断旋转它。我该怎么办?
答案 0 :(得分:1)
您可以先设置属性anchorPoint
来设置定位点,例如:
[ombreoeuf1 setAnchorPoint:ccp(0,0)]
然后通过设置另一个属性rotation
来设置旋转(以度为单位):
[ombreoeuf1 setRotation:90]
anchorPoint
和rotation
都是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]];