我正在使用以下代码旋转精灵,但我很难在旋转过程中找到精灵的位置。我可以找到精灵旋转但不是当前位置的位置。
[item convertToWorldSpace:CGPointZero];
[item setPosition:ccp(375,160)];
id rotate = [CCRotateBy actionWithDuration:3 angle:360];
[item runAction: [CCRepeatForever actionWithAction: [CCSequence actions: rotate,nil]]];
答案 0 :(得分:-1)
无需更改精灵的位置。所有转换(旋转,缩放等)都相对于节点的anchorPoint进行。如果你希望你的精灵在视觉上保持在同一个位置,只需将anchorPoint设置为
ccp(0.5f, 0.5f)
顺便说一下,CCSprite默认有这样的anchorPoint。
在所有转换过程中,节点的anchorPoint将具有您设置为此节点的位置。所以,如果你将anchorPoint设置为
ccp(0.f, 0.f)
精灵的左下角在旋转,缩放等过程中将处于相同的位置
另外你应该记住,你自己的CCNode子类(不是CCSprite)不会对anchorPoint属性做出反应,直到你将实例的属性isRelativeToAnchorPoint设置为YES。
[yourNode setIsRelativeAnchorPoint:YES];