Повернуть CCSprite вокруг определенной точки? - PullRequest
0 голосов
/ 17 декабря 2010

Как я могу вращать спрайт вокруг определенной точки вместо центральной точки?

Поворот CCSprite или действие CCRotateTo вращаются вокруг центральной точки.

Я пытаюсь повернуть изображение лица. Вращение вокруг центра (носа) выглядит не так хорошо, как вращение вокруг точки чуть ниже центра (подбородка).

В Фотошопе можно изменить опорную точку вращения. Это можно сделать в cocos2d-iphone?

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Самый очевидный способ - увеличить размер вашего спрайта.

Если высота равна 50px, а текущая точка вращения центра - это середина (25px), и вы хотите, чтобы она была, скажем,30px, просто увеличьте холст вашего спрайта в фотошопе, чтобы изображение получило 10px прозрачного пространства внизу.

Надеюсь, это поможет вашей проблеме, я никогда не видел ссылки на точки привязки для вращения в cocos2d.

0 голосов
/ 27 апреля 2014

Вы должны соответственно изменить свою anchorPoint.

AnchorPoint будет центром вашего вращения ccsprite, он начинается с левого нижнего (0.0,0.0) до правого верхнего (1,1).Чтобы вычислить его, получите положение точки относительно ccsprite и разделите на размер спрайта:

//anchorPoint position
float x = myRotationPosition.x/ mySprite.width;
float y = myRotationPosition.y/ mySprite.height;
mySprite.anchorPoint = cpp(x,y);
//rotate mySprite based on new anchorPoint
mySprite.rotation = 90;

Надеюсь, что поможет

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