cocos2dx --- Action介绍

原文来自:http://www.cnblogs.com/changchao/archive/2013/05/07/3065254.html

1. cocos2dx中,CCAction的类的结构图
<ignore_js_op style="word-wrap: break-word;">07181004-05b12de7eb664137a955b1bb4d3e24e6.png 

2.动作的基类是CCAction,通过继承它可以实现很多不同的动作,主要分为三大类:CCFiniteTimeAction(有限次动作执行类)、CCSpeed(节点执行速度类)、CCFollow(节点跟随另一个节点移动)。在实际中,主要用到的是CCFiniteTimeAction类。

3.CCFiniteTimeAction分为CCActionInstant(瞬时动作)和CCActionInterval(延迟动作)。其中CCActionInstant动作没有执行过程,动作瞬时完成,而CCActionInterval动作执行需要一定的时间(或者一个过程)。在实际中,为了制作出炫丽的动画效果,使用得多的是CCActionInterval延时动作。

4.在上面的类结构图中,CCActionInterval的子类很多,简单介绍其中常用的,也可以通过cocos2d-x中自带的TestCpp例子来学习。(1) CCMoveTo / CCMoveBy 移动两者的主要差别在于CCMoveTo是移动到指定坐标,CCMoveBy是相对坐标。例如CCMoveTo(2.0f, ccp(50, 50))是在2s时间内移动到点x = 50、y = 50处,而CCMoveBy(2.0f, ccp(50, 50))表示2s时间内向x方向移动50个单位,向y方向移动50个单位;(2) CCScaleTo / CCScaleBy 缩放;(3) CCRotateTo / CCRotateBy 旋转;(4) CCSkewTo / CCSkewBy 扭曲;(5) CCJumpTo / CCJumpBy 跳跃;(6) CCBezierTo / CCBezierBy 贝塞尔曲线;(7) CCBink 闪烁;(8) CCFadeIn / CCFadeOut 淡入淡出;(9) CCTintTo / CCTintBy 染色,等

5.下面就个人体会,重点分析以下几个动作:CCSequence,CCSpawn,CCRepeat,CCRepeatForever,CCActionCamera
  CCSequence:是用来按顺序执行一系列的动作。需要注意是,在执行的动作系列中不能出现CCRepeat这种无限的动作。

  1. CCMoveTo* move_1 = CCMoveTo::create(2,ccp(10,20));
  2. CCMoveBy* move_2 = CCMoveBy::create(2,ccp(10,20));
  3. CCMoveTo* move_3 = CCMoveBy::create(2,ccp(10,20));
  4. CCSequence* seq = CCSequence::create(move_1,move_2,move_3,NULL);
  5. sprite->runAction(seq);
复制代码


CCSpawn:同时执行一系列动作,执行的时间以子动作中最长事件为准。

  1. CCSpawn* action = CCSpawn::create( 
  2. CCJumpBy::create(2 ,ccp(300,0) ,50 ,4), 
  3. CCRotateBy::create(2,720), NULL); 
  4. sprite->runAction(action);
复制代码


CCRepeat:有限次重复一个动作。

  1. CCMoveBy* action = CCMoveBy::create(2,ccp(10,10));
  2. CCRepeat* repeat = CCRepeat::create(action,3);
  3. sprite->runAction(repeat);
复制代码


CCRepeatForerver:无限次重复一个动作。

  1. CCRotateBy* rotate = CCRotateBy::create(1.0,360); 
  2. CCRepeatForever* action2 = CCRepeatForever::create(rotate); 
  3. sprit->runAction(action2);
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值