cocos2d中ccScaleBy和ccScaleTo有什么区别?

时间:2011-08-09 04:29:17

标签: cocos2d-iphone

我正在使用CCScaleTo方法在cocos2d中缩放我的sprite对象。它不是完美的缩放,所以我使用这段代码:

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

这很完美。

我不知道ccScaleByCCScaleTo之间的区别以及如何使用“反向”方法。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:18)

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]

相关问题