标签:
时间间隔动作(ActionInterval)是一个在一段时间内执行的动作。 它有一个开始时间和完成时间。完成时间等于起始时间加上持续时间。
ActionInterval的子类
与位置有关的动作类;
JumpBy,JumpTo,MoveBy,MoveTo,BezierBy,BezierTo,CardinalSplineBy,CardinalSplineTo
与缩放有关的动作类;
ScaleTo,ScaleBy,
与旋转有关的动作类;
RotateBy, RotateTo
与倾斜有关的动作类
SkewTo,SkewBy
与颜色变化有关的动作类
FadeTo,TintBy,TintTo
序列动作有关的动作类
Sequence,Spawn
与时间有关的动作类
DelayTime,Repeat, RepeatForever,ReverseTime,ActionFloat
与进度有关的动作类
ProgressFromTo, ProgressTo
与可见性有关的动作类
Blink
与网格有关的动作类
GridAction
与缓动有关的动作类
ActionEase
与动画有关的动作类
Animate
与3D有关的动作类
ActionCamera,Animate3D
有振幅有关的动作类
AccelAmplitude, AccelDeccelAmplitude,DeccelAmplitude
其他相关动作
ActionTween,TargetedAction
static JumpBy * create (float duration, //持续时间,以秒为单位。
const Vec2 &position, //跳跃的距离。
float height, //跳跃的高度。
int jumps) //跳跃的次数。
static JumpTo * create (float duration, //持续时间,以秒为单位。
const Vec2 &position, //跳跃的目的地的位置。
float height, //跳跃的高度。
int jumps) //跳跃的次数。
实例:
auto actionTo = JumpTo::create(2, Vec2(300,300), 50, 4);
auto actionBy = JumpBy::create(2, Vec2(300,0), 50, 4);
static MoveBy * create (float duration, //持续时间,以秒为单位。
const Vec2 &deltaPosition) //位移,Vec2类型。
static MoveBy * create (float duration, //持续时间,以秒为单位。
const Vec3 &deltaPosition) //位移,Vec3类型。
static MoveTo * create (float duration, //持续时间,以秒为单位。
const Vec2 &position) //二维世界的目标位置。
static MoveTo * create (float duration, //持续时间,以秒为单位。
const Vec3 &position) //三维世界的目标位置。
实例:
auto s = Director::getInstance()->getWinSize(); auto actionTo = MoveTo::create(2, Vec2(s.width-40, s.height-40)); auto actionBy = MoveBy::create(2, Vec2(80,80));
static BezierBy * create (float t, //持续时间,以秒为单位。
const ccBezierConfig &c) //贝塞尔曲线配置。
static BezierTo * create (float t, //持续时间,以秒为单位。
const ccBezierConfig &c) //贝塞尔曲线配置。
实例:
// sprite 1 ccBezierConfig bezier; bezier.controlPoint_1 = Vec2(0, s.height/2); bezier.controlPoint_2 = Vec2(300, -s.height/2); bezier.endPosition = Vec2(300,100); auto bezierForward = BezierBy::create(3, bezier); auto bezierBack = bezierForward->reverse(); auto rep = RepeatForever::create(Sequence::create( bezierForward, bezierBack, nullptr)); // sprite 2 _tamara->setPosition(80,160); ccBezierConfig bezier2; bezier2.controlPoint_1 = Vec2(100, s.height/2); bezier2.controlPoint_2 = Vec2(200, -s.height/2); bezier2.endPosition = Vec2(240,160); auto bezierTo1 = BezierTo::create(2, bezier2);
static CardinalSplineBy * create (float duration, //以秒为单位的持续时间。
PointArray *points, //控制点数组。
float tension) //曲线张力。
static CardinalSplineTo * create (float duration,
PointArray *points, //控制点数组。
float tension) //曲线张力。
实例:
auto s = Director::getInstance()->getWinSize(); auto array = PointArray::create(20); array->addControlPoint(Vec2(0, 0)); array->addControlPoint(Vec2(s.width/2-30,0)); array->addControlPoint(Vec2(s.width/2-30,s.height-80)); array->addControlPoint(Vec2(0, s.height-80)); array->addControlPoint(Vec2(0, 0)); auto action = CardinalSplineBy::create(3, array, 0);
注,CardinalSplineBy,CardinalSplineTo有个子类继承者CatmullRomTo,CatmullRomBy,区别就是设置默认设定张力0.5,不可改。
static ScaleTo * create (float duration, //持续时间,以秒为单位。
float s) //X和Y轴的缩放比例。
static ScaleTo * create (float duration, //持续时间,以秒为单位。
float sx, //X轴缩放比例。
float sy) //Y轴缩放比例。
static ScaleTo * create (float duration, //持续时间,以秒为单位。
float sx, //X轴缩放比例。
float sy, //Y轴缩放比例。
float sz) //Z轴缩放比例。
实例:
auto actionTo = ScaleTo::create(2.0f, 0.5f); auto actionBy = ScaleBy::create(2.0f, 1.0f, 10.0f);
static RotateBy * create (float duration, //持续时间,以秒为单位。
float deltaAngle) //旋转角度。
static RotateBy * create (float duration, //持续时间,以秒为单位。
float deltaAngleZ_X, //X轴旋转角度,以角度值计。
float deltaAngleZ_Y) //Y轴旋转角度,以角度值计。
static RotateBy * create (float duration, //持续时间,以秒为单位。
const Vec3 &deltaAngle3D) //三维旋转角度。
static RotateTo * create (float duration, //持续时间,以秒为单位。
float dstAngleX, //X轴的目标角度,以角度值计。
float dstAngleY) //Y轴的目标角度,以角度值计。
static RotateTo * create (float duration, //持续时间,以秒为单位。
float dstAngle) //目标角度,以角度值计。
static RotateTo * create (float duration, //持续时间,以秒为单位。
const Vec3 &dstAngle3D) //三维旋转角度。
实例:
auto actionTo = RotateTo::create(2, 180, 180); auto actionToBack = RotateTo::create(2, 0, 0); auto actionBy = RotateBy::create(2, 0.0f, 360);
static SkewTo * create (float t, //持续时间,以秒为单位。
float sx, //X轴目标倾斜角度。
float sy) //Y轴目标倾斜角度。
static SkewBy * create (float t, //持续时间,以秒为单位。
float deltaSkewX, //X轴倾斜角。
float deltaSkewY) //Y轴倾斜角。
实例:
auto actionTo = SkewTo::create(2, 37.2f, -37.2f); auto actionToBack = SkewTo::create(2, 0, 0); auto actionBy = SkewBy::create(2, 0.0f, -90.0f);
标签:
原文地址:http://www.cnblogs.com/damowang/p/4856368.html