cocosbuilder 游戏动画开发需注意的几个细节
CocosBuilder最大的优点在于动画编辑,就如同Flash CS能快速有效地帮助我们为游戏中会用到的对象编辑动画一样。与Cocos2d-x配合使用,无疑能显著提高开发效率。
在此记录一些文档中未提及或容易被忽略的实现细节:
1. 分辨率设置
创建mainScene时,默认是横屏480 320。若需要竖屏显示,可以自定义分辨率为320 480。
当需要创建自循环运动的对象时,需创建子CCB文件,此时可使用0 * 0的分辨率。
关于分辨率适配的详细内容,可参考:分辨率适配相关文章
2. 设置ACTION
除了可以通过使用时间轴(timeline)来设置缩放(scale)、旋转(rotate)、不透明度(opaque)、位置(position)等属性外,还可以框选多张图片,右键点击“Animation create”来创建动画(animation),每张图片都会生成一个关键帧。
3. X、Y、Z轴
在右边工具栏中,“flipX”和“flipY”可根据X轴和Y轴来反转图片。
在时间轴控制块中,可通过上下拖动对象来调整对象在Z轴上的位置,从而决定对象之间的覆盖关系。
4. 时间轴(timeline)
- 快速创建关键帧:通过按住键盘的“option”键,点击时间轴上的任意位置,可快速创建关键帧。
- 实现循环:通过将时间轴链接到自身来实现循环。
- 实际应用:在实际游戏中,通常可以创建一个开场(intro)时间轴和一个循环(loop)游戏时间轴,播放顺序为“intro -> loop -> loop”(即播放一次intro,之后形成loop循环)。
5. 资源路径
要确保在Xcode中引用了发布(publish)生成的CCBI文件后,能够找到图片等资源文件,就必须保证图片与CCBI文件的相对路径不发生变化。
例如,在项目中创建了一个“ironman.ccb”文件,其中引用了一张图片,会指定相应的资源路径。生成的“ironman.ccb”文件通过XML会指定到该路径的资源文件,最终生成的CCBI文件同样会指向这里。
如果发现项目中有资源文件找不到,也可以通过文本编辑CCB中的资源路径来达到批量修改的目的。
在Xcode项目中引用该“ironman.ccb”导出的CCBI文件时,示例代码如下:
local node = CCBReaderLoad("ironman/package/bin/ironman.ccbi", proxy, true, "XXX")
这里的“XXX”与CCB文件中的自定义类(custom class)相对应。
一定要确保CocosBuilder文件目录和Xcode文件目录中CCBI文件和图片资源的相对路径一致。
6. 多个动画的叠加
以一只龙边煽动翅膀边横向飞翔为例,说明如何实现一个对象自身运动的同时在场景中运动。
- 步骤一:建立一个CCB文件,创建好龙的原型,勾选“autoplay”。在该CCB文件中做好煽动翅膀的动画,并将时间轴链接到自身以实现循环播放,同时设置自循环。创建好后必须进行一次发布(publish),这样才能在mainScene中引用该CCB文件。
- 步骤二:在mainScene中引用该CCB文件,但不能直接引用,否则在实际游戏中,龙不会循环播放自身的动画。正确的做法是先创建一个CCNode,将龙的CCB文件作为CCNode的子类插入。并且在CCNode的时间轴上设置位置(position)等动画,这样才能实现两种动画的叠加。
示例项目
补上一个示例项目(demo),包含Xcode项目文件和CCB项目文件,地址为:示例项目下载。其中建立了3个引用CCB的对象,其中两种不能循环执行动作(action),只有一种能正常工作。
请采用对应的版本:Cocos2d-x版本为2.1.5,CocosBuilder版本为3alpa5,因为CocosBuilder版本不对可能会遇到很多问题。