В чем разница между ccScaleBy и ccScaleTo в cocos2d? - PullRequest
5 голосов
/ 09 августа 2011

Я масштабирую свой спрайтовый объект в cocos2d, используя метод CCScaleTo.Это не идеальное масштабирование, поэтому я использую этот код:

id action1=[CCScaleTo actionWithDuration:0.5 scale:1.25];
id action2=[CCScaleBy actionWithDuration:0.5 scale:.25];
id action3=[CCScaleTo actionWithDuration:0.5 scale:1.25];
id action4=[CCScaleTo actionWithDuration:0.5 scale:.25];

[timeUpImg runAction:[CCSequence actions:action1,action2,action3,action4,nil]];

Это работает отлично.

Я не знаю разницу между ccScaleBy и CCScaleTo, а также как использовать «обратный» метод.Может кто-нибудь объяснить это, пожалуйста?

1 Ответ

18 голосов
/ 09 августа 2011

CCScaleTo масштабирует узел / спрайт до абсолютного масштабного коэффициента, тогда как CCScaleBy масштабирует его с коэффициентом относительно текущего масштаба.

Например, предположим, что узел в настоящее время имеет масштаб 0.25:

  • [CCScaleTo actionWithDuration:0.5 scale:2.0] изменит шкалу на 2.0 (просто игнорирует текущую шкалу)

  • [CCScaleBy actionWithDuration:0.5 scale:2.0] изменит шкалу на 0.5 (0,25 * 2,0)

По второму вопросу метод reverse возвращает экземпляр подкласса CCAction, который дает обратный эффект исходного действия.Например: [[CCScaleBy actionWithDuration:0.5 scale:2.0] reverse] вернет [CCScaleBy actionWithDuration:0.5 scale:0.5], а [[CCScaleBy actionWithDuration:0.5 scale:4.0] reverse] вернет [CCScaleBy actionWithDuration:0.5 scale:0.25]

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