书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型游戏开发平台Cocos2Dx中的动作特效与动画课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:5059898
  • 上传时间:2023-02-07
  • 格式:PPTX
  • 页数:43
  • 大小:2.35MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《游戏开发平台Cocos2Dx中的动作特效与动画课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    游戏 开发 平台 Cocos2Dx 中的 动作 特效 动画 课件
    资源描述:

    1、游戏开发平台Cocos2D-xocos2d-X中的动作特效与动画2019/3/8xxxxxxxxxx12019/3/8xxxxxxxxxx2Cocos2D-x的基础类,包括节点类CCNode、导演类CCDirector、场景类CCScene、布景层、CCLayer和精灵类CCSprite等。这些类都是构成游戏画面的基本元素。但是游戏不仅是由静态画面构成的,更多时候,游戏是动态效果的呈现,所以动作、特效和动画是游戏区别于应用的特点,又是决定游戏质量的关键一环。因此,决定一个二维游戏引擎的好坏的重要因素是引擎对动作、特效和动画的支持程度。动作类2019/3/8xxxxxxxxxx3Cocos2D-

    2、x的动作类CCAction并不是一个在屏幕中显示的对象,动作必须要依托于CCNode类及它的子类的实例才能发挥作用。C0C0S2D-x的动作包括位置移动、跳跃,甚至是对象颜色的渐变。CCAction类继承于对象类CCObject,有三个子类:有限时间动作、跟随、移动速度,其中有限时间动作分为瞬时动作(CCActionlnstant)和延时动作(CCActionlnterval)。CCAction 的主要函数2019/3/8xxxxxxxxxx42019/3/8xxxxxxxxxx5CCAction的子类CCFiniteTimeAction分为瞬时动作(CCActionlnstant)和延时动作

    3、bCCActionlnterval)移动动作2019/3/8xxxxxxxxxx6Void ActionMove:onEnter()ActionsDemo:onEnter();centerSprites(3);CCSizes=CCDirector:sharedDirector()-getWinSize();CCActionlnterval*actionTo=CCMoveTo:create(2,CCPointMake(s.width-40,s.height-40);CCActionlnterval*actionBy=CCMoveBy:create(2,CCPointMake(80,80);CCA

    4、ctionlnterval*actionByBack=actionBy-reverse;);_tamara-runAction(actionTo);_grossini-runAction(CCSequence:create(actionBy,actionByBack,NULL);_kathia-runAction(CCMoveTo:create(1,CCPointMake(40,40);以上分别定义了CCMoveTo和CCMoveBy的实例。之前已经说过CCMoveBy是MoveTo的子类,CCMoveTo是移动到目标位置,而CCMoveB.是次目前位置的基础上移之到目标位置。创建函数crea

    5、te的第一个参数是时间,第二个参数是位置对象。动作调用reverse函数会返回另外一个动作,使这个动作倒置,而精灵类实例在调用runAction函数时也会有不同,m_grossini精灵使用的就是动作序列CCSequence。CCSequence动作序列的定义由多个动作构成,create函数中以NULL参数作结尾,效果是作为参数传入的动作会颐序执行。缩放动作2019/3/8xxxxxxxxxx7Void ActionScale:onEnter()ActionsDemo:onEnter();centerSprites(3);CCActionlnterval*actionTo=CCScaleTo:

    6、create(2.Of,0.5f);CCActionlnterval*actionBy=CCScaleBy:create(2.Of/l.Of,lO.Of);CCActionlnterval*actionBy2=CCScaleBy:create(2.Of,5.Of,l.Of;m_grossini-runAction(actionTo);m_tamara-runAction(CCSequence:create(actionBy,actionBy-reverse(),NULL);m_kathia-runAction(CCSequence:create(actionBy2,actionBy2-reve

    7、rse(),NULL);以上分别定义了CCScaleTo和CCScaleBy的实例。之前已经说过CCScaleBy是CCScaleTo的子类,CCScaleTo是缩放到相应比例,CCScaleBy是在目前基础上变化相应的缩放比例。create函数可以使用两个参数或者三个参数。两个参数的第一个参数是时间间隔,第二个参数是缩放比例。三个参数的第一个参数是时间间隔,第二个参数是x轴缩放比例,第三个参数是y轴缩放比例。扭曲动作2019/3/8xxxxxxxxxx8Void ActionSkew:onEnter()ActionsDemo:onEnter();centerSprites(3);CCActi

    8、onlnterval*actionTo=CCSkewTo:create(2,37.2f,-37.2f);CCActionlnterval*actionToBack=CCSkewTo:create(2,0,0);CCActionlnterval*actionBy=CCSkewBy:create(2,O.Of,-90.Of);CCActionlnterval*actionBy2=CCSkewBy:create(2,45.Of,45.0f);CCActionlnterval*actionByBack=actionBy-reverse();m_tamara-runAction(CCSequence:c

    9、reate(actionTo,actionToBack,NULL);M_grossini-runAction(CCSequence:create(actionBy,actionByBack,NULL);m_kathia-runAction(CCSequence:create(actionBy2,actionBy2-reverse(),NULL);以上分别定义了CCSkewTo和CCSkewBy是实例。之前已经说过CCSkewBy是CCSkewTo的子类。二者关系和之前类似,以By结尾的参数是相对于目前值的过程量,以To结尾的参数是绝对的参数,不管现有状态如何,直接设置为参数的这个值。三个参数的

    10、第一个参数是时间间隔,第二个参数是x轴扭曲参数,第三个参数是y轴扭曲参数。旋转动作2019/3/8xxxxxxxxxx9voidActionRotate:onEnter()ActionsDemo:onEnter();centerSprites(3);CCActionlnterval*actionTo=CCRotateTo:create(2,45);CCActionlnterval*actionTo2=CCRotateTo:create(2,-45);CCActionlnterval*actionToO=CCRotateTo:create(2,0);m_tamara-runAction(CCSe

    11、quence:create(actionTo,actionToO,NULL);CCActionlnterval*actionBy=CCRotateBy:create(2,360);CCActionlnterval*actionByBack=actionBy-reverse();M_grossini-runAction(CCSequence:create(actionBy,actionByBack,NULL);m_kathia-runAction(CCSequence:create(actionTo2,actionToO-copy()-autorelease(),NULL);以上分别定义了CCR

    12、otateTo和CCRotateBy的实例。之前已经说过CCRotateBy是CCRotateTo的子类,二者关系和之前类似。两个参数的第一个参数是时间间隔,第二个参数是旋转角度,这里的角度表示采用角度制。跳转动作2019/3/8xxxxxxxxxx10voidActionJump:onEnter()ActionsDemo:onEnter();centerSprites(3);CCActionlnterval*actionTo=CCJumpTo:create(2,CCPointMake(300,300),50,4);CCActionlnterval*actionBy=CCJumpBy:crea

    13、te(2,CCPointMake(300,0),50,4);CCActionlnterval*actionUp=CCJumpBy:create(2,CCPointMake(0,0),80,4);CCActionlnterval*actionByBack=actionBy-reverse();m_tamara-runAction(actionTo);m_grossini-runAction(CCSequence:create(actionBy,actionByBack,NULL);m_kathia-runAction(CCRepeatForever:create(actionUp);以上分别定义

    14、了CCJumpTo和CCJumpBy的实例。之前已经说过CCJumpTo是CCJumpBy的子类,二者关系和之前类似。四个参数的第一个参数是时间间隔,第二个参数CCJumpTo的是目标位置的绝对坐标,CCJumpBy的是相对于目前位置的相对坐标,第三个参数为跳跃高度,第四个参数是跳跃的次数。贝塞尔曲线动作2019/3/8xxxxxxxxxx11voidActionBezier:onEnter()ActionsDemo:onEnter();CCSizes=CCDirector:sharedDirector()-getWinSize();centerSprites(3);ccBezierConfi

    15、gbezier;bezier.controlPoint_l=CCPointMake(0,s.height/2);bezier.controlPoint_2=CCPointMake(300,-s.height/2);bezier.endPosition=CCPointMake(300,100);CCActionlnterval*bezierForward=CCBezierBy:create(3,bezier);CCActionlnterval*bezierBack=bezierForward-reverse();CCAction*rep=CCRepeatForever:create(CCActi

    16、onlnterval*)CCSequence:create(bezierForward,bezierBack,NULL);m_tamara-setPosition(CCPointMake(80,160);ccBezierConfigbezier2;bezier2.controlPoint_1=CCPointMake(100,s.height/2);bezier2.controlPoint_2=CCPointMake(200,-s.height/2);bezier2.endPosition=CCPointMake(240,160);CCActionlnterval*bezierTol=CCBez

    17、ierTo:create(2,bezier2);m_kathia-setPosition(CCPointMake(400,160);CCActionlnterval*bezierTo2=CCBezierTo:create2,bezier2);m_grossini-runAction(rep);m_tamara-runAction(bezierTo1);m_kathia-runAction(bezierTo2);2019/3/8xxxxxxxxxx12 ccBezierConfig的三个参数需要配置,前两个是控制点,最后一个是终点。其中终点在CCBezierTo和CCBezierBy两个类中的运

    18、行结果不同,依然是CCBezierTo的终点是绝对位置,而CCBezierBy是相对于目前位置的相对位置。控制点的设置分别控制在路径上的高峰和低谷的位置。如果走的路径与图中方向一致,苎两个控制点的纵坐标设置为一正一负。控制点纵坐标的正负决定是向下走还是向上绝对值决定移动的幅度。而横坐标是横坐标方向的移动,该值对于CCBezierBy是相对于目前位置的相对位置,于CCBezierTo的终点是绝对位置。如果需要图中曲线旋转90度的路径,就把两个控制点的横坐标分别设置为一正一负即可,然后交换x轴和y轴的要求 CCBezierTo和CCBezierBy都是贝塞尔曲线动作。create函数没有什么区别,

    19、都是两个参数,第一个参数依然是动作时间,第二个参数是贝塞尔曲线的配置系数。.贝塞尔曲线是应用于二维图形应用程序的数学曲线,每一个顶点都有两个控制点,用于控制该顶点两侧曲线的弧度淡入淡出动作2019/3/8xxxxxxxxxx13Void ActionFade:onEnter()ActionsDemo:onEnter();centerSprites(2);m_tamara-setOpacity(0);CCActionlnterval*actionl=CCFadeln:actionWithDuration(l.Of);CCActionlnterval*actionlBack=actionl-rev

    20、erse();CCActionlnterval*action2=CCFadeOut:actionWithDuration(l.Of);CCActionlnterval*action2Back=action2-reverse();m_tamara-runAction(CCSequence:actions(actionl,actionlBack,NULL);m_kathia-runAction(CCSequence:actions(action2,action2Back/NULL);std:StringActionFade:subtitle()returnFadeln/FadeOut;这里需要说明

    21、的是,淡入首先要将不透明度设置为0。闪烁动作2019/3/8xxxxxxxxxx14voidActionBlink:onEnter()ActionsDemo:onEnter();centerSprites(2);CCActionlnterval*actionl=CCBlink:actionWithDuration(2,10);CCActionlnterval*action2=CCBlink:actionWithDuration(2,5);m_tamara-runAction(actionl);m_kathia-runAction(action2);色值渐变动作2019/3/8xxxxxxxxx

    22、x15voidActionTint:onEnter()ActionsDemo:onEnter();centerSprites(2);CCActionlnterval*actionl=CCTintTo:actionWithDuration(2,255,0,255);CCActionlnterval*action2=CCTintBy:actionWithDuration(2,-127,-255,-127);CCActionlnterval*action2Back=action2-reverse();m_tamara-runAction(actionl);m_kathia-runAction(CCS

    23、equence:actions(action2,action2Back/NULL)以上分别定义了CCTintTo和CCTintBy的实例,第一个参数是动作时间,后三个参数分别是颜色的R、G、B值。CCTintTo是直接设置色值,CCTintBy是在目前值上加上相应的值。摄像机动作类2019/3/8xxxxxxxxxx16第3章介绍了摄像机类CCCamera,动作中也有一个摄像机动作类CCOrbitCamera,它是摄像机环绕屏幕中心旋转所形成的动作。voidActionOrbit:onEnter()ActionsDemo:onEnter();centerSprites(3);CCActionl

    24、nterval*orbit3=CCOrbitCamera:create(2,1,0,0,180,90,0);CCFiniteTimeAction*action3=CCSequence:create(orbit3,orbit3-reverse(),NULL);m_kathia-runAction(CCRepeatForever:create(CCActionlnterval*)actionl);m_tamara-runAction(CCRepeatForever:create(CCActionlnterval*)action2);m_grossini-runAction(CCRepeatFore

    25、ver:create(CCActionlnterval*)action3);CCActionlnterval*move=CCMoveBy:create(3,CCPointMake(100,-100);CCActionlnterval*move_back=move-reverse();CCFiniteTimeAction*seq=CCSequence:create(move,move_back,NULL);CCAction*rfe=CCRepeatForever:create(CCActionlnterval*)seq);m_kathia-runAction(rfe);m_tamara-runA

    26、ction(CCAction*)(rfe-copy()-autorelease();m_grossini-runAction(CCAction*)(rfe-copy()-autorelease();摄像机动作类2019/3/8xxxxxxxxxx17 旋转的坐标描述采用了球坐标。球坐标采用球面半径、与X轴夹角、与Z轴夹角这几个值来描述坐标点。摄像机动作类CCOrbitCamera的创建函数create有7个参数,第一个参数是动作时间,第二、三个参数是起始的坐标值中的半径和过程中的坐标值中的半径,第四、五个参数是起始的坐标值中的与z轴夹角和过程中的坐标值中的与z轴夹角,第六、七个参数是起始的坐标

    27、值中的与x轴夹角和过程中的坐标值中的与x轴夹角。注意在使用摄像机旋转时,如果正在旋转的这个节点后面还有其他节点的话,可能会出现旋转的节点只有一部分显示出来的这种情况。这时只需要关闭OpenGL的深度检测,获得导演类并调用setDepthTest设置为false即可,如下面的代码所示:CCDirector:sharedDirector()-setDepthTest(false)。基本样条动作2019/3/8xxxxxxxxxx18在游戏中,有时会希望使用一些非常规轨迹能描述的运动轨迹,希望只是“告诉”游戏对象几个离散的点,游戏对象就可以根据这些离散的点模拟出相应的路径。当然,有相应的公式模拟出这

    28、条曲线,那就是基本样条。Cocos2D-x中有沿基本样条路径移动动作类CCCardinalSplineTo和其子类实现这样的功能 其中CCCardinalSplineTo和CCCardinalSplineBy的关系与之前以“To”和“By”结尾的类类似,CCCatmullRomTo和CCCatmullRomBy也是这样的。它们都是采用基本样条的公式;不同的是,CCCatmullRomTo和CCCatmullRomBy的拉力系数是0.5,而之前的CCCardinalSplineTo和CCCardinalSplineBy的拉力系数是可以自定义的。画基本样条路径2019/3/8xxxxxxxxxx1

    29、9Void ActionCardinalSpline:onEnter()ActionsDemo:onEnter();this-centerSprites(2);CCSizes=CCDirector:sharedDirector()-getWinSize();CCPointArray*array=CCPointArray:create(20);array-addControlPoint(ccp(0,0);array-addControlPoint(ccp(s.width/2-30,0);array-addControlPoint(ccp(s.width/2-30,s.height-80);arr

    30、ay-addControlPoint(ccp(0,s.height-80);array-addControlPoint(ccp(0,0);CCCardinalSplineBy*action=CCCardinalSplineBy:create(3,array,0);CCActionlnterval*reverse=action-reverse();CCFiniteTimeAction*seq=CCSequence:create(action,reverse,NULL);M_tamara-setPosition(ccp(50,50);M_tamara-runAction(seq);CCCardin

    31、alSplineBy*action2=CCCardinalSplineBy:create(3,array,1);CCActionlnterval*reverse2=action2-reverse();CCFiniteTimeAction*seq2=CCSequence:create(action2,reverse2,NULL);m_kathia-setPosition(ccp(s.width/2,50);m_kathia-runAction(seq2);M_pArray=array;array-retain();首先定义一个点数组,把路径的点放入点数组中。创建基本样条动作时,3个参数分别是动作

    32、时间、点数组、拉力系数。CCCardinalSplineTo和CCCardinalSplineBy的区别是,由于第一个是绝对的,第二个是相对的,第二个定义点数组的时候,第一个点最好设置为(0,0),否则起始点会被忽略掉。可以重写布景层的draw函数来把路径画出来。画Catmull-Rom样条路径2019/3/8xxxxxxxxxx20voidActionCatmullRom:onEnter()ActionsDemo:onEnter();this-centerSprites(2);CCSizes=CCDirector:sharedDirector()-getWinSize();m_tamara-

    33、setPosition(ccp(50,50);CCPointArray*array=CCPointArray:create(20);array-addControlPoint(ccp(0,0);array-addControlPoint(ccp(80,80);array-addControlPoint(ccp(s.width-80,80);array-addControlPoint(ccp(s.width-80,s.height-80);array-addControlPoint(ccp(80,s.height-80);array-addControlPoint(ccp(80,80);arra

    34、y-addControlPoint(ccp(s.width/2,s.height/2);CCCatmullRomBy*action=CCCatmullRomBy:create(3,array);CCFiniteTimeAction*reverse=action-reverse();CCFiniteTimeAction*seq=CCSequence:create(action,reverse,NULL);m_tamara-runAction(seq);CCPointArray*array2=CCPointArray:create(20);array2-addControlPoint(ccp(s.

    35、width/2,30);array2-addControlPoint(ccp(s.width-80,30);array2-addControlPoint(ccp(s.width-80,s.height-80);array2-addControlPoint(ccp(s.width/2,s.height-80);array2-addControlPoint(ccp(s.width/2,30);CCCatmullRomTo*action2=CCCatmullRomTo:create(3,array2);CCFiniteTimeAction*reverse2=action2-reverse();CCF

    36、initeTimeAction*seq2=CCSequence:create(action2,reverse2,NULL);m_kathia-runAction(seq2);m_pArrayl=array;m_pArrayl-retain();m_pArray2=array2;m_pArray2-retain();CCCatmullRomTo和CCCatmullRomBy的用法和之前的那组类的用法一样,只是不需要第三个拉力系数参数。它们的区别和之前的也是一样的,也可以重写布景层的draw函数来把路径画出来。缓冲动作2019/3/8xxxxxxxxxx21在实现运动中,常常需要实现一些加速度或者

    37、减速度的效果。Cocos2D-x引擎为我们提供了相应的实现接口,这样就不用再用原来的公式计算方法来实现加减速度的效果。Ease系列的方法改变了运动的速度,但是并没有改变总体时间。如果整个动作持续5s,那么整个时间仍然会持续5s。这些动作可以分成三类。Inactions:action(开始的时候加速)Outactions:action(结束的时候加速)InOutactions:action(开始和结束的时候加速)CCActionEase有很多子类,根据不同的缓冲公式来模拟加减速过程。缓冲动作的具体内容如下。1)指数缓冲:分别为EaseExponentialln、EaseExponentialOu

    38、t、EaseExponentiallnOut。2)赛因缓冲:分别为EaseSineIn、EaseSineOut、EaseSineInOut。3)跳跃缓冲:分别为EaseBounceln、EaseBounceOut、EaseBouncelnOut。4)弹性缓冲:分别为EaseElasticIn、EaseElasticOut、EaseElasticInOut。5)回震缓冲:分别为EaseBackln、EaseBackOut、EaseBacklnOut。以上介绍的5种缓冲,加上基本的缓冲动作,一共6种缓冲动作,其定义如代码清单4-15所示。缓冲动作2019/3/8xxxxxxxxxx22/基本缓冲动

    39、作CCEaseln:create(CCActionlnterval*)(move-copy()-autorelease(),2.5f);CCEaseOut:create(CCActionlnterval*)(move-copy()-autorelease(),2.5f);CCEaselnOut:create(CCActionlnterval*)(move-copy()-autorelease(),0.65f);/指数缓冲动作CCEaseExponentialln:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseExponent

    40、ialOut:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseExponentiallnOut:create(CCActionlnterval*)(move-copy()-autorelease();/赛因缓冲动作CCEaseSineln:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseSineOut:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseSinelnOut:create(CCAct

    41、ionlnterval*)(move-copy()-autorelease();缓冲动作2019/3/8xxxxxxxxxx23/跳跃缓冲动作CCEaseBounceln:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseBounceOut:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseBouncelnOut:create(CCActionlnterval*)(move-copy()-autorelease();/弹性缓冲动作CCEaseElasticIn:c

    42、reate(CCActionlnterval*)(move-copy()-autorelease();CCEaseElasticOut:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseElasticInOut:create(CCActionlnterval*)(move-copy()-autorelease(),0.3f);/缓冲动作CCEaseBackln:create(CCActionlnterval*)(move-copy()-autorelease();CCEaseBackOut:create(CCActionlnte

    43、rval*)(move-copy()-autorelease();CCEaseBacklnOut:create(CCActionlnterval*)(move-copy()-autorelease();第一个参数是要缓冲的动作,其中基本缓冲动作需要第二个参数是速率,弹性缓冲动作需要第二个参数是震动的周期,默认值为0.3。组合动作2019/3/8xxxxxxxxxx24在游戏中,游戏对象有时不是执行一个动作,有时是多个动作的动作序列,有时是同时执行几个动作序列。这时候就需要使用组合动作的方式将多个动作或按序列组织,或合成在一起。1.CCSequence1.CCSequence定义一个动作序列,可

    44、以使用动作的定义一个动作序列,可以使用动作的CCArrayCCArray数组数组;也可以把所有的动作作为参数传入也可以把所有的动作作为参数传入createcreate函数中,函数中,最后结尾参数使用最后结尾参数使用NULL(NULL(空值)即可空值)即可;还可以把两个有限时间动作按顺序传人还可以把两个有限时间动作按顺序传人createcreate函数中。函数中。CCFiniteTimeAction*seq2=CCSequence:create(action2#reverse2,NULL);m_kathia-runAction(seq2);2.CCSpawn2.CCSpawnCCSpawnCCS

    45、pawn动作是使被合成的动作同时进行。它的定义方法和动作序列一致动作是使被合成的动作同时进行。它的定义方法和动作序列一致CCAction*action=CCSpawn:create(CCJumpBy:create(2,CCPointMake(300,0),50,4),CCRotateBy:create(2,720),NULL);m_grossini-runAction(action);组合动作2019/3/8xxxxxxxxxx253.CCRepeat3.CCRepeat和和CCRepeatForeverCCRepeatForever除了以上两个可以实现多个动作的类外,还有可以使一个动作重复播

    46、放的类,那就是除了以上两个可以实现多个动作的类外,还有可以使一个动作重复播放的类,那就是CCRepeatCCRepeat和和CCRepeatForeverCCRepeatForever。二者都可以使动作重复进行,不同之处就是。二者都可以使动作重复进行,不同之处就是CCRepeatCCRepeat可以在第二个参数中定义重复次数,而可以在第二个参数中定义重复次数,而CCRepeatForeverCCRepeatForever是一直重复的。是一直重复的。CCActionInterval*rep2=CCRepeat:create(CCFiniteTimeAction*)(seq-copy()-auto

    47、release(),10);m_kathia-runAction(rep2);CCAction*rep2=CCRepeatForever:create(CCActionlnterval*)(seq-copy()-autorelease();m_kathia-runAction(rep2);跟随动作2019/3/8xxxxxxxxxx26跟随动作CCFollow是一个节点跟随另外一个节点的动作。voidActionFollow:onEnter()ActionsDemo:onEnter();centerSprites(1);CCSizes=CCDirector:sharedDirector()-g

    48、etWinSize();m_grossini-setPosition(CCPointMake(-200,s.height/2);CCActionlnterval*move=CCMoveBy:create(2,CCPointMake(s.width*3,0);CCActionlnterval*move_back=move-reverse();CCFiniteTimeAction*seq=CCSequence:create(move,move_back,null);CCAction*rep=CCRepeatForever:create(CCActionlnterval*)seq);m_grossi

    49、ni-runAction(rep);this-runAction(CCFollow:create(m_grossinifCCRectMake(0,0,s.width*2-100,s.height);可调整动作速度2019/3/8xxxxxxxxxx27可调整速度动作CCSpeed不是一个独立的动作,可以把它理解为是对目前动作的一个“包装”,经过这个“包装”以后,就可以实现“慢动作”和“快进”的效果。使用CCSpeed来处理很方便Void SpeedTest:onEnter()EaseSpriteDemo:onEnter();CCSizes=CCDirector:sharedDirector()

    50、-getWinSize();CCActionlnterval*junpl=CCJunpBy:create(4#CCPointMake(-s.width+80,0),100,4);CCActionlnterval*jump2=jumpl-reverse();CCActionlnterval*rotl=CCRotateBy:create(4,360*2);CCActionlnterval*rot2=rotl-reverse();CCFiniteTimeAction*seq3_l=CCSequence:create(jump2,jumpl,NULL);CCFiniteTimeAction*seq3_

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:游戏开发平台Cocos2Dx中的动作特效与动画课件.pptx
    链接地址:https://www.163wenku.com/p-5059898.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库