Cocos2d-x学习笔记(十八)之 基本动作

  CCAction的子类CCFiniteTimeAction分为瞬时动作(CCActionInstant)和延时动作(CCActionInterval),其中瞬时动作的子类如下:

  CCCallFunc:执行回调函数。

  CCFilpX:x轴镜像翻转。

  CCFilpY:y轴镜像翻转。

  CCHide:隐藏。

  CCPlace:设置位置。

  CCReuseGrid:重用网络。

  CCShow:显示。

  CCStopGrid:停止网格。

  CCToggleVisibility:可见切换。

  瞬时动作,顾名思义,就是直接调用结果的动作,这中间不产生任何动画效果。

  

  延时动作(CCActionInterval)则不同,它会形成动画过程,其子类如下:

  CCBezierBy:贝塞尔曲线,移动固定的距离。它有一个子类CCBezierTo,也是贝塞尔曲线,移动到固定的点上。

  CCBlink:闪烁。

  CCDelayTime:延迟。

  CCFadeTo:变暗。

  CCMoveTo:移动到目的点。子类CCMoveBy,x、y轴坐标分别移动相应的相对距离。

  CCRotateTo:移动到相应的角度。有子类CCRotateBy,移动相应的角度,是在目前角度的基础上加上相对值。

  CCFadeIn:由无变亮。

  CCFadeOut:由亮变无。

  CCJumpBy:按抛物线轨迹移动相应距离,参数是相对的距离。有子类CCJumpTo,跳跃到某个固定的位置。

  CCSequence:动作序列。

  CCSpawn:合并多个动作,使多个动作同时进行。

  CCScaleTo:缩放到原来的固定倍数。有子类CCScaleBy,缩放相对的倍数。

  CCTintTo:色调变化到。

  CCTintBy:色调变化相对数值。

  CCAnimate:动画。

  CCReverseTime:时间逆向。

  CCRepeat:有限次重复。

  CCRepeatForever:无限次重复。

  CCActionCamera:摄像机动作。

  CCSkewTo:扭曲效果到设定的参数。有子类CCSkewBy,移动相对的参数。

  CCTargetedAction:动作的目标并不一定是动作的执行者动作。

  CCCardinalSplineTo:基样曲线移动到相应位置,也有CCCardinalSplineBy等其他子类。

  CCDeccelAmplitude:有相应幅度参数的动作,附带动作时间,有减速效果。

  CCAccelAmplitude:有相应幅度参数的动作,附带动作时间,有加速效果。

  CCAccelDeccelAmplitude:有相应幅度参数的动作,附带动作时间,有变速效果。

  好了,下面我们就来看一些动作类的使用示例:

  1、移动动作:

 1 CCSize s = CCDirector::sharedDirector()->getWinSize();
 2 //参数:时间、位置对象
 3 CCActionInterval* actionTo = CCMoveTo::create(2, CCPointMake(s.width - 40, s.height- 40));
 4 CCActionInterval* actionBy = CCMoveBy::create(2, CCPointMake(80, 80));
 5 //动作倒置
 6 CCActionInterval* actionByBack = actionBy->reverse();
 7 
 8 m_tamara->runAction( actionTo );
 9 m_grossini->runAction( CCSequence::create( actionBy, actionByBack, NULL ) );
10 m_kathia->runAction( CCMoveTo::create(1, CCPointMake(40, 40)) );

  2、缩放动作:

1 //可以两个参数或三个参数:两个参数:时间间隔、缩放比例,三个参数:时间间隔、x轴缩放比例、y轴缩放比例。
2 CCActionInterval* actionTo = CCScaleTo::create(2.0f, 0.5f);
3 CCActionInterval* actionBy = CCScaleBy::create(2.0f, 1.0f, 10.0f);
4 
5 m_grossini->runAction( actionTo );
6 m_tamara->runAction( CCSequence::create( actionBy, actionBy->reverse(), NUKK ) );

  3、扭曲动作:

1 //参数:时间间隔、x轴扭曲参数、y轴扭曲参数
2 CCActionInterval* actionTo = CCSkewTo::create(2, 30.0f, -10.0f);
3 CCActionInterval* actionBy = CCSkewBy::create(2, 0.0f, -10.0f);
4 m_tamara->runAction( CCSequence::create( actionTo, actionTo->reverse(), NULL ) );
5 
6 m_grossini->runAction( CCSequence::create( actionBy, actionBy->reverse(), NULL ) );

  好了,实例就列举这么几个吧,其他的基本动作和实例的用法基本相同,比如:旋转动作(CCRotateTo、CCRotateBy)、跳跃动作(CCJumpTo、CCJumpBy)、贝塞尔曲线动作(CCBezierTo、CCBezierBy)、淡入淡出动作(CCFadeIn、CCFadeOut)、闪烁动作(CCBlink)、色值渐变动作(CCTintTo、CCTintBy)等。

原文地址:https://www.cnblogs.com/atong/p/3282583.html