cocosbuilder 游戏动画开发需注意的几个细节

2015年03月18日 10:12 0 点赞 0 评论 更新于 2025-11-21 14:01

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版本不对可能会遇到很多问题。

作者信息

feifeila

feifeila

共发布了 3994 篇文章