首页 > 代码库 > 07--动作系统(一)
07--动作系统(一)
动作在游戏中有举足轻重的作用,它让游戏中的元素活了起来,比如单击一个按钮使用一个特效让玩家明显的感觉到点了这个按钮;角色的移动,攻击等等都离不开动作。因此Cocos2DX也为我们提供了丰富强大的动作系统。
CCNode与动作基类
CCNode中定义了动作有关的函数,也就是说根源种子类以及子类都能够执行动作。
//执行一个动作,并返回该动作 CCAction* runAction(CCAction* action); //移除所有动作 void stopAllActions(void); //根据动作参数移除指定的动作 void stopAction(CCAction* action); //根据标签移除动作 void stopActionByTag(int tag); //根据标签获取动作 CCAction* getActionByTag(int tag); //获取当前对象执行动作的总数 unsigned int numberOfRunningActions(void);
上面函数都有详细的注释就不再解释了,下面看看动作基类CCAction。
CCAction和CCNode一样都直接集成了CCObject,可见Cocos2DX将动作作为一个单独的系统来处理。从上图也可以看出动作主要根据时间来划分,当然还有两个比较特殊的动作类:跟随动作CCFollow和速度动作CCSpeed。按照时间属性来划分引擎将动作分为了即时动作CCActionInstant和持续动作CCActionInterval两大类。前面也学习到不少元素现在我们来看看动作系统的位置(书上的图能说明问题借用了):
即时动作:动作执行马上就能见到效果的动作
- CCFlipX 与 CCFlipY 将精灵对象水平垂直翻转;
- CCPlace :将精灵对象放置在指定的位置(注意该动作不会影响其他属性如精灵对象的显示状态);
- CCHide与CCShow:控制精灵对象的显示还是隐藏的动作;
- CCToggleVisibility:精灵对象显示与隐藏的开关动作,也就是原来的隐藏的执行该动作后就为显示,反之亦然;
- CCReuseGrid与CCStopGrid:网格动作;
- CCCallFunc:函数回调动作,这个和C#中的委托使用有点像是,它又有三个子类:CCCallFuncND、CCCallFuncN、CCCallFuncO,三者的不同就是参数不同,使用中再详细了解。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。