Положение вращающегося спрайта - PullRequest
0 голосов
/ 09 марта 2012

Я вращаю спрайт, используя следующий код, но мне трудно найти положение спрайта во время его вращения.Я могу найти положение, вокруг которого вращается спрайт, но не его текущее положение.

[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 голосов
/ 10 марта 2012

Нет необходимости менять позицию вашего спрайта. Все преобразования (вращение, масштабирование и т. Д.) Выполняются относительно anchorPoint вашего узла. Если вы хотите, чтобы ваш спрайт визуально оставался в одной и той же позиции, просто установите anchorPoint на

ccp(0.5f, 0.5f)

Кстати, CCSprite по умолчанию имеет такую ​​точку привязки.

Во время ВСЕХ ваших преобразований anchorPoint вашего узла будет иметь положение, которое вы установили для этого узла. Итак, если вы установите anchorPoint в

ccp(0.f, 0.f)

левый нижний угол вашего спрайта будет в том же положении во время вращения, масштабирования и т. Д.

Также вы должны помнить, что ваши собственные подклассы CCNode (не CCSprite) не будут реагировать на свойство anchorPoint, пока вы не установите свойство экземпляра isRelativeToAnchorPoint в YES.

[yourNode setIsRelativeAnchorPoint:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...