在 cocos2d 中,大部分 动画 都是预先渲染好的位图。然后通过快速轮换来给玩家一种动态的感觉。例如下面的一系列位 图,快速轮换时就是一朵随风而动的雏菊。按照下面的步骤就可以
在cocos2d中,大部分动画都是预先渲染好的位图。然后通过快速轮换来给玩家一种动态的感觉。例如下面的一系列位 图,快速轮换时就是一朵随风而动的雏菊。按照下面的步骤就可以很容易的创建帧动画:
- 创建包含各个帧的png图片
- 将png 图片序列合并为一个png
- 生成CCSpriteSheet需要的.plist
- 在游戏中使用 CCSprite显示动画
创建包含各个帧的png图片
要创建动画,Flash是一个非常好用的工具。而Flash提供了将帧动画导出为png图片序列的功能。假设我们的动画已经用Flash制作完成,保存成名 为Flower9001的元件。现在打开包含这个元件的.fla文件,按照下列步骤生成png图片序列。
将元件 拖放到画布上,调整好元件大小。然后修改元件类型为“Graphics”:
接下来按照元件的帧数,在时间轴上添加相同的帧数。最终结果如下:
预览一下可以看到动态花卉后,就可以使用Flash的File->Export->Export Movie功能将动画导出为png图片序列:
导出类型应该选为PNG Sequence,并选择Include为“Minimum Image Area”,选择Colors为“24 bit with alpha channel”:
导出完成后,可以得到一系列的png图片,文件名为Flower0001.png到 Flower0063.png:
将png图片序列转换为CCSpriteSheet需要的格式
启 动Zwoptex,新建一个.zss文件,然后将刚刚创建好的png图片全部拖放到Zwoptex窗口中:
设定Zwoptex的Layout面板中的Sort On选项为“Name”,再调整Canvas面板中的Width和Height为合适的大小,确保能够容纳所有的png图片。设定后,点击Layout面 板中的Apply按钮,可以自动调整png图片的布局,最终需要确保没有重叠的图片:
调整完成后。点击Export面板中的Save .png和Save .plist按钮,分别生成合并后的png图片,以及所有帧的.plist文件。
导出的png图片命名为 Flower.png,.plist文件命名为Flower.plist。
在cocos2d中使用CCSpriteSheet创建动画
在XCode中新建基于cocos2d的项目,命名为Make Sprite Anim。并将Flower.png和Flower.plist导入Resources群组中。
新建Config.h文件,内容为:
|
并确保HelloWorldScene.m和FlowerSprite.m文件的开头用#import “Config.h”导入Config.h文件。
修改HelloWorldScene.m文件,将init方法改为:
|
前半部分代码的作用是将Flower.png和Flower.plist导入 CCSpriteFrameCache(帧缓存),以便后续构造FlowerSprite对象时直接使用缓存的数据。
新建一个 CCSprite的继承类,命名为FlowerSprite。修改FlowerSprite.m,增加init方法:
|
最后,编译运行就可以看到我们的花卉动画了。