欢迎光临
我们一直在努力

cocos2d-x Action动作

所有的动作都要在runAction()中执行

 

 

l瞬时动作

Show Hide——显示、隐藏和闪烁动作

Show::create()

显示动作,用来立即显示一个节点

Hide:: create()

隐藏动作,用来立即隐藏一个节点

 

FlipXFlipY

FlipX:: create(bool x)立即水平翻转一个精灵

   x如果为true则水平翻转精灵,值为false时则恢复精灵原始状态。

 

 

FlipY:: create(bool y)立即垂直翻转一个精灵

    y如果为true则垂直翻转精灵,值为false时则恢复精灵原始状态。

 

 

Place

Place:: create(const Vec2 &pos)将节点放置在特定位置

    pos一个特定的位置

 

removeself

RemoveSelf::create(bool  isNeedCleanUp = true)用来删除执行动作的节点

  isNeedCleanUp 是否需要清理,默认值是true

 

延时动作

MoveToMoveBy

 MoveTo::create(float duration,const Vec2 & position )在有限的时间内移动某一坐标

      duration  移动到目标点所用时间,以秒为单位。

      position  移动到目的地的坐标点

 MoveBy:: create(float duration,const Vec2 &  deltaPosition) 相对于当前坐标,进行移动

      duration  移动到目标点所用时间,以秒为单位。

      position  执行动作者的当前坐标,加上这个坐标,就是所要移动到的终点坐标。

 

JumpToJumpBy

 JumpTo::create(float duration,const Vec2 & position,float height,int jumps )跳跃到某一位置

 

    duration 持续时间,以秒为单位。

    position 跳跃的目的地的位置。

    height 跳跃的高度。

    jumps 跳跃的次数。

 JumpBy:: create(float duration,const Vec2 & position,float height,int jumps )跳跃到某一相对位

    duration 持续时间,以秒为单位。

    position 执行动作者的当前坐标,加上这个坐标,就是所要跳跃到的终点坐标。

    height 跳跃的高度。

    jumps 跳跃次数。

 

RotateTo(跳跃到)RotateTo

RotateTo::create(float  duration,float  dstAngleX,float dstAngleY )来旋转一个节点对象到一定角度

      duration  持续时间,以秒为单位。

      dstAngleX  X轴的目标角度,以角度值计。

      dstAngleY  Y轴的目标角度,以角度值计

 

 RotateBy:: create (float  duration,float  deltaAngle )顺时针旋转一个节点对象

        duration 持续时间,以秒为单位。

        deltaAngle 旋转角度。

 

 

ScaleTo(跳跃到)ScaleBy

 

 ScaleTo:: create(float duration,float s )  用持续时间,XY轴相同的缩放比例缩放

       duration 持续时间,以秒为单位。

       s XY轴的缩放比例。

 ScaleBy:: create(float duration,float s )   用持续时间,XY轴相同的缩放比例缩放(相对于当前大小)

       duration 持续时间,以秒为单位。

       s XY轴的缩放比例。

 

 

 

BezierToBezierBy

 

ccBezierConfig 类型的创建

 

ccBezierConfig  c;

c.controlPoint_1=Vec2();

c.controlPoint_2=Vec2();

c.endPosition=Vec2();

 

 

 BezierTo::create (float  t,const ccBezierConfig & c)将一个节点沿三次贝塞尔曲线移动到特定位置。

       t 持续时间,以秒为单位。

       c 贝塞尔曲线配置。

 BezierBy::create (float  t,const ccBezierConfig & c)将一个节点沿三次贝塞尔曲线移动一定距离。

       t 持续时间,以秒为单位。

       c 贝塞尔曲线配置。

 

 

 

样条曲线

 

CardinalSplineTo::create (float  duration,Point Array *  points,float tension)

让目标节点沿Cardinal Spline样条曲线到达目的地的。

     duration以秒为单位的持续时间。

     points 控制点数组。

     tension 曲线张力。

CardinalSplineBy::create (float  duration,PointArray *  points,float tension)

让目标节点沿Cardinal Spline样条曲线移动一定距离。

     duration 以秒为单位的持续时间。

     points 控制点数组。

     tension 曲线张力。

 

摄像机动作

OrbitCamera::create(float t,float radius,float deltaRadius,float angleZ,float deltaAngleZ,float  angleX,float deltaAngleX)

使用球面坐标为轨道绕屏幕中心移动相机。

 

    t 以秒为单位的持续时间。

    radius 起始半径。

    deltaRadius 半径增量。

    angleZ 起始z轴角度。

    deltaAngleZ z轴角度增量。

    angleX 起始x轴角度.

    deltaAngleX x轴角度增量。

 

FadeIn, FadeOutFateTo

 FadeIn:: create(float d) 使节点的当前透明度从0渐变到255

    d 持续时间,以秒为单位

 FadeOut:: create(float d) 使节点的当前透明度从255渐变到0

    d 持续时间,以秒为单位

 FadeTo::create (float  duration,GLubyte opacity)使节点从当前透明度渐变到指定透明度

    duration 持续时间,以秒为单位。

    opacity 目标透明度,范围从0255

 

 

 

色彩渐变动作—TintToTintBy

 TintTo::create(float duration,GLubyte red,GLubyte green,GLubyte blue)使对象变色到特定颜色

    duration 持续时间,以秒为单位。

    red         颜色的红色通道值,从0255

    green 颜色的绿色通道值,从0255

    blue 颜色的蓝色通道值,从0255

 

 TintBy:: create(float duration,GLshort deltaRed,GLshort deltaGreen,GLshort deltaBlue)使对象按一定差值改变其颜色。

    duration 持续时间,以秒为单位。

    deltaRed 颜色差值的红色通道值,从0255

    deltaGreen 颜色差值的绿色通道值,从0255

    deltaBlue 颜色差值的蓝色通道值,从0255

 

 

TargetedAction

 TargetedAction:: create(Node *  target,FiniteTimeAction * action)可以让内部动作强制在目标节点上执行,而不是调用runAction函数时指定的节点。

    target 该动作的固定目标节点.

    action 内部动作。

 

闪烁动作Blink

 Blink::create(float duration,int blinks) 通过修改节点的visible属性让节点对象有不断闪现的效果。

    duration 持续时间,以秒为单位。

    blinks 闪现次数。

ProgressTo ProgressTimer

ProgressTimer

 ProgressTimer::create(Sprite * sp)Sprite对象作为进度条的图形,创建一个ProgressTimer对象。

     sp 需要使用的 Sprite 对象的指针

 

void setPercentage(float percentage)设置进度条显示的百分比。

     percentage 百分比值

void setType(Type  type) 设置进度条的类型。

     type 进度条类型。

void setMidpoint(const Vec2 &  point)

中点(Midpoint)表示进度条变化的起始位置。 如果进度条是径向模式,中点代表圆心位置 如果进度条是条形模式,中点代表着进度条展开的方向。 进度条从中心位置向两边展开,因此: 进度条是从左往右展开时,设置中点(Midpoint)为Vec2(0,y); 进度条是从右往左展开时,设置中点(Midpoint)为Vec2(1,y); 进度条是从下往上展开时,设置中点(Midpoint)为Vec2(x,0); 进度条是从上往下展开时,设置中点(Midpoint)为Vec2(x,1);

     

     point 中点位置。

 

 

ProgressTo

 ProgressTo::create(float duration,float  percent)在一定时间内目标节点从当前百分比到指定的百分比。  

        duration 指定ProgressTo动作的持续时间。这是一个以秒为单位的值。

        percent 指定目标百分比。

 

 

组合动作

Repeat::create(action,times)重复执行一个动作

    action 需要重复的目标动作。

    times 重复次数。

RepeatForever::create(action):永久执行一个动作

    action 需要重复的目标动作。

Spawn::create(action1,action2,NULL); 同时执行N个动作,最后用NULL结尾

 

Sequence::create(action1,action2,NULL)) 顺序动作(先执行动作1,然后执行动作2·······),最后NULL结尾

CallFunc系列动作

CallFunc  调用一个回调函数,第一个参数必须事先指定,也就是必须用CC_CALLBACK_ 0

 

CallFuncN 调用回调函数,可以用CC_CALLBACK_ 0,也可以用CC_CALLBACK_ 1,用CC_CALLBACK_ 1的话,回调函数第一个参数为节点

 

 

CC_CALLBACK_

 

CC_CALLBACK_  的宏定义中后面的 0 1 2 3分别表示的是 不事先指定回调函数参数的个数。

 

例如说 CC_CALLBACK_ 1 表示的是,回调函数中不事先指定参数是一个,而事先指定的回调函数的参数 可以任意多个。

 

void HelloWorld::menuCloseCallback(Object* pSender,int a,int b)

{

    std::cout<<a<<"  "<<b<<std::endl;

    Director::getInstance()->end();

 

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)

    exit(0);

#endif

}

auto closeItem = MenuItemImage::create(

                                           "CloseNormal.png",

                                           "CloseSelected.png",

                                           CC_CALLBACK_1(HelloWorld::menuCloseCallback,this,1,2));

 

注意this这个参数必须有的,this后的为事先指定的参数,可以有无数个

 

menuCloseCallback有三个参数,而调用的时候,使用的是CC_CALLBACK_1,因此,不事先指定的参数就是一个,即Object* pSender

事先指定的参数就是两个,即int a,int b;因此可以看到在CC_CALLBACK_1里有12两个参数

 

如果回调函数第一个参数没有被事先指定,就会用this去传递第一个参数里,如果第一个参数被事先

指定了,就会用事先指定的参数去传递

 

运行,在 点击closeItem  的时候,就会输出这两个事先指定的参数 1  2

 

 

 

 

未经允许不得转载:白天看星星' s Blog—xhmshine—专注于游戏开发--张红银' s Blog » cocos2d-x Action动作
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址