我目前正在使用plist
在我的cocos2dx游戏中使用精灵动画
我正在使用的编码语言是c ++
现在,我想切换到flash动画,原因如下:
任何人都可以告诉我该怎么做。我只是想知道从哪里开始。
答案 0 :(得分:3)
使用Flash成熟动画工具的优势很诱人,但不幸的是没有“开箱即用”的解决方案。
然而,有办法完成工作:
1)使用CreateJS等工具将动画导出为JS文件。然后创建一个脚本,将数据解析为* .plist文件,其中包含导出图像的链接,位置等。稍后使用tweener为图形设置动画。 您还需要手动绘制矢量形状并将其另存为.PNG文件,因为CreateJS不会将它们导出为PNG。但它很容易,因为CreateJS使用save API作为Flash,你可以准确地获得所有形状。
缺点是:
CreateJS不支持复杂渐变
将JS解析为PLIST是一件痛苦的事情,我花了一整天的时间来编写它。准备好使用很多RegExp
注意:如果你在设置中使用CreateJS工具包取消选中Compact shapes选项,它将使矢量数据看起来可读。
2)制作一个工具,用动画读取SWF并将每个动画保存为PNG序列或精灵表(精灵表可以更好地与COCOS2dx配合使用)。
缺点是:
3)潜入JS:FL并制作自己的工具,以可用的格式导出所有图形。没有缺点,但我发现它更难做到。
4)如果在MovieClip中没有MovieClip的多级动画,你只需右键点击一个动画并将其导出为一个工作表/序列,这样做很快,但你会花很多钱时间编辑FLA文件以满足要求,如果你有多个级别(你需要将父MC转换为图形,以便它可以在一个时间轴上播放)。
您可能希望以其他方式导出动画而不是精灵表或序列,例如骨骼动画,您可以在其中保存更复杂动画的每个部分以及补间/动画点列表。 我在这里写了一篇关于它的文章:Using SWF animation in Haxe/OpenFL applications这不是关于COCOS的,但它适用于普遍使用平台的任何技术。
正如你所看到的那样,并不是所有的坏消息,但你必须为此做一些编码,因为没有公共工具可以做到这一点。我必须制作上面列出的所有工具,我建议你坚持第一选择。
答案 1 :(得分:1)
最佳解决方案是GAFConverter。你可以在Cocos 2dx网站上找到GAF动画播放器。 它可以帮助您将动画转换为一种格式,然后轻松地将它们添加到项目中。
答案 2 :(得分:0)
您可以将Flash动画导入CocoStudio
工具,然后您可以为Cocos2d-x项目创建或导出动画。
查看Cocos2d-x-2.2
版本。 TestCpp
项目中的扩展类别中包含许多示例。
查看CocoStudio
工具http://www.cocos2d-x.org/download
答案 3 :(得分:0)
我为此编写了自己的轻量级解决方案。它位于Objective C / Cocos2d中,但您可以将其转换 - 它只是几个类。
在iOS / cocos2d中导出和动画Flash符号的简单库,包含示例。
工作流:
- 使用包含图形符号的动画图层在Flash中将动画创建为MovieClip。
- 使用附带的JSFL脚本将动画导出为JSON +帧PNG。
- 将PNG转换为精灵表(使用您自己的工具,我使用 - http://www.codeandweb.com/texturepacker)
- 在应用包中包含动画JSON文件和精灵表。
- 加载纹理,使用简单的命令在精灵上运行复杂的多层动画。
在github上查看:
这是我的第一个github提交,我很好奇人们如何找到它,所以请告诉我。