旋转精灵的位置

时间:2012-03-09 12:04:04

标签: cocos2d-iphone

我正在使用以下代码旋转精灵,但我很难在旋转过程中找到精灵的位置。我可以找到精灵旋转但不是当前位置的位置。

[item convertToWorldSpace:CGPointZero];  
[item setPosition:ccp(375,160)];         
id rotate = [CCRotateBy actionWithDuration:3 angle:360];  
[item runAction: [CCRepeatForever actionWithAction: [CCSequence actions: rotate,nil]]];

1 个答案:

答案 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];