围绕一个锚点旋转一个精灵
我有一个精灵:
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]
anchorPoint
和rotation
都是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]];