Cocos2d-x游戏开发CCBAnimationManager控制动画播放
来源:互联网 发布:书 知乎 编辑:程序博客网 时间:2024/05/18 04:55
CocosBuilder能方便的编辑各种动画。大部分动画都是以独立片段的形式存在的。需要由程序来控制何时播放。
管理ccbi文件的动画播放有个专门的类:CCBAnimationManager
大致的逻辑是这样的:
所有的动画以动作的形式存在一个CCArray中。
这个ActionManager管理这些动作。
我们现在想做的无非两件事:控制播放动作,当动作结束时得到通知。
我们在cocosBuilder中设置的默认动作,是当Scene层的OnEnter加载完成,就会播放的。
因此要对其中的元素修改,应在onEnter中进行。
好,现在我们面临的第一个问题是当第一个动作结束时,我如何知道?
在这个类中有这样一个函数:
我们可以这样用:回调函数定义如下:
这样当第一个动作执行完,就会调用这个函数。即使你有一个CCSquence。比如,在cocosBuilder设置了动画链,它也是会被调用的。你唯一要注意的是,这个注册必须在动作结束之前。好,下面的第二个问题,如何让下一个动作运行。
同样是在CCBAnimationManager中,它们是播放动画的方法。name即是你在cocosBuilder起的动画名称。fTweenDuration是两个动画之间的间隔。中间那个函数表示没有间隔。
所以,我们可以这样用:
这样我们就能将一串动作串起来了!
知道了怎么控制动画之后,还有个问题,就是如何把cbbi的CCBAnimationManager找到呢?
这就要从extensions\CCBReader\CCNodeLoader.cpp这个文件说起了。
当调用CCBReader::readNodeGraph方法是,会Load相应的Node。其中会调用:
这个方法。可见由ccbi文件读进来的每一个元素,都是通过Loader中的这个方法创建的。
这个方法是什么?
就是创建一个CCNode而已。
我们要做的就是重写这个方法,原理是因为我们要调用CCBReader中的getAnimationManager()这个方法,将得到的manager保存到一个私有变量中就成了。
我这个写到宏里了,凑合看吧 哈
其中setAnimationManager保存了这个值。ok,这样一来就可以操作cbbi中的AnimationManager了,当然也就可以自由控制动画的流程啦~
转自http://blog.csdn.net/fansongy/article/details/8937210
- Cocos2d-x游戏开发CCBAnimationManager控制动画播放
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第十一节:骨骼动画模型播放控制
- cocos2d-x游戏开发(十六)帧动画
- cocos2d-x游戏开发(十六)帧动画
- CCBAnimationManager的使用:使用cocos2d-x程序控制,由cocosBuilder生成cbbi中的动画
- CCBAnimationManager的使用:使用cocos2d-x程序控制,由cocosBuilder生成cbbi中的动画
- 【Cocos2d-x游戏引擎开发笔记(16)】动画速度的控制
- 【Cocos2d-x游戏引擎开发笔记(16)】动画速度的控制
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
- cocos2d-x播放骨骼动画
- cocos2d-x 播放帧动画
- Cocos2d-x 如何播放动画
- 【Cocos2D-X游戏开发笔记1】播放音乐&CocosDenshion
- Cocos2D-x游戏开发之三:音乐播放
- Cocos2d-x游戏开发——播放背景音乐
- Unity3D游戏开发之如何用脚本控制动画播放?
- 标量子查询 子查询执行次数计算公式
- 观《源代码》(电影)有感
- 解决office2007安装问题
- ssh开发c3po数据源配置
- Cocos2dx 3.0 过渡篇
- Cocos2d-x游戏开发CCBAnimationManager控制动画播放
- sgu101-欧拉回路
- Myeclipse显示代码行数
- 树状数组
- mysql学习日记之锁
- Bash Shell中命令行选项/参数处理
- 有关 sizeof和strlen() size()的总结
- 使用Log4j进行日志控制,在访问程序时总是出现警告消息
- C#线程同步讲解(二):