1. ScaleTo ScaleBy
对node进行缩放。ScaleBy是ScaleTo的子类。
1.1 成员变量 create方法
ScaleTo ScaleBy 成员变量一样:
float _scaleX; float _scaleY; float _scaleZ; float _startScaleX; // startWithTarget target->getScaleX() float _startScaleY;// float _startScaleZ;// float _endScaleX; // create参数s float _endScaleY;// float _endScaleZ;// float _deltaX; // startWithTarget ScaleTo: _endScaleX - _startScaleX ScaleBy: _startScaleX * _endScaleX - _startScaleX; float _deltaY;// float _deltaZ;//
create方法:
ScaleTo::create(float duration, float s) ScaleBy::create(float duration, float s)
1.2 startWithTarget
ScaleTo:
ActionInterval::startWithTarget(target); _startScaleX = target->getScaleX(); _startScaleY = target->getScaleY(); _startScaleZ = target->getScaleZ(); _deltaX = _endScaleX - _startScaleX; _deltaY = _endScaleY - _startScaleY; _deltaZ = _endScaleZ - _startScaleZ;
ScaleBy:
ScaleTo::startWithTarget(target); _deltaX = _startScaleX * _endScaleX - _startScaleX; _deltaY = _startScaleY * _endScaleY - _startScaleY; _deltaZ = _startScaleZ * _endScaleZ - _startScaleZ;
1.3 update
两者一致:
_target->setScaleX(_startScaleX + _deltaX * time); _target->setScaleY(_startScaleY + _deltaY * time); _target->setScaleZ(_startScaleZ + _deltaZ * time);