我目前在我的cocos2dx游戏中使用plist
的精灵动画。
我使用的编程语言是c++。
现在,我想因为以下原因切换到Flash动画:
- 它们占用更少的内存
- 易于处理和使用
- 更好的质量
有人可以告诉我如何做吗?我只想知道从哪里开始。
使用Flash的成熟动画工具确实很诱人,但不幸的是,没有“开箱即用”的解决方案。
然而,有几种方法可以完成这项工作:
1)使用像CreateJS这样的工具将动画导出为JS文件。然后编写一个脚本,将数据解析为*.plist文件,并链接到导出的图像、它们的位置等。稍后使用tweener来对图形进行动画化。 您还需要手动绘制矢量形状并将其保存为.PNG文件,因为CreateJS不会将它们导出为PNG。但是这很容易,因为CreateJS使用与Flash相同的保存API,您可以精确地获取所有形状。
缺点是:
CreateJS不支持复杂渐变
将JS解析为PLIST非常麻烦,我花了一整天的时间编写它。准备使用大量RegExp。
注意:如果在CreateJS工具包中选择设置,取消选中紧凑形状选项,这将使矢量数据变得可读。
2)制作一个工具,读取带有动画的SWF并将每个动画保存为PNG序列或精灵表(精灵表与COCOS2dx配合使用效果更好)。
缺点是:
3)深入了解JS:FL,并制作自己的工具,以可用于您的格式导出所有图形。没有缺点,但我发现要做到这一点更难。
4)如果您没有多级动画,其中包含MovieClips内部的MovieClips,您可以右键单击动画并将其导出为表/序列,这样做非常快速,但如果您有多个级别,则需要花费大量时间编辑FLA文件以满足要求(您需要将父MC转换为图形,以便在单个时间轴上播放)。
您可能希望以其他方式导出动画,而不仅仅是精灵表或序列,例如骨骼动画,其中保存了更复杂动画的每个部分和tweens/动画点列表。 我写了关于它的文章: 在Haxe/OpenFL应用程序中使用SWF动画 这不是关于COCOS的,但它将适用于任何平台的任何技术。
正如您所看到的,这并非全是坏消息,但您必须进行一些编码,因为没有公共工具可以完成这项工作。我不得不制作上述所有工具,并建议您选择第一选择。
我为此编写了自己的轻量级解决方案。它是用Objective C / Cocos2d编写的,但您可能可以将其转换 - 它只有几个类。
一个简单的库,用于在iOS / cocos2d中导出和动画化Flash符号,并包含示例。
工作流程:
- 使用带有动画图层的Graphic符号在Flash中创建您的动画MovieClips。
- 使用包括的JSFL脚本将动画导出为JSON +帧PNG。
- 将PNG转换为精灵表(使用您自己的工具,我使用http://www.codeandweb.com/texturepacker)
- 将动画JSON文件和精灵表包含在应用程序包中。
- 加载纹理,使用简单命令在精灵上运行复杂的多层动画。
在github上查看:
这是我第一次在GitHub提交,我很好奇人们会发现它的有用性,所以请告诉我。
cocos2d-x
3.0 容易吗? - marzapowerCocoStudio
工具中,进一步为Cocos2d-x项目创建或导出动画。Cocos2d-x-2.2
版本。在扩展类别的TestCpp
项目中包含许多示例。CocoStudio
工具http://www.cocos2d-x.org/download。