围绕一个锚点旋转一个精灵

我有一个精灵:

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

我想旋转它不断围绕一个锚点。 我该怎么做?

您可以先通过设置属性anchorPoint来设置anchorPoint ,例如:

 [ombreoeuf1 setAnchorPoint:ccp(0,0)] 

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

 [ombreoeuf1 setRotation:90] 

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

更新

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

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

CCNode子类的所有转换都是相对于锚点完成的。 在所有的转换过程中,anchorPoint将具有相同的位置。 例如,如果将sprite的anchorPoint(0.f,0.f)放置到屏幕的左下angular位置(0.f,0.f),然后将其设置为比例,例如5.f,改造后将停留在左下angular,只是变大。 所以所有的旋转将自动完成相对于锚点。

还有一件事。 CCSprite默认有anchorPoint(0.5f,0.5f)和一些内容大小,所以你只需要将它设置为另一个就可以看到转换的变化。 如果你想用CCNode来做,你必须将它的relativeToAnchorPoint属性设置为YES,并手动设置contentSize。

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

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