【问题标题】:using flash animations in cocos2dx project在 cocos2dx 项目中使用 flash 动画
【发布时间】:2013-12-03 06:43:49
【问题描述】:

我目前正在使用plist 在我的 cocos2dx 游戏中使用精灵动画。
我使用的编码语言是 c++。
现在,我想切换到 Flash 动画,原因如下:

  1. 它们占用较低的内存
  2. 易于处理和使用
  3. 更好的质量

谁能告诉我怎么做。我只想知道从哪里开始。

【问题讨论】:

  • 你在使用精灵表/纹理图集吗?
  • 目前我正在使用精灵表
  • 除了使用 sprite Animation 你还可以在 cocos2dx 中使用 Spine 动画,这与 sprite 动画相比非常真实

标签: c++ flash animation cocos2d-x


【解决方案1】:

想利用Flash成熟动画工具的优势,可惜没有“开箱即用”的解决方案。

但是有一些方法可以完成工作:

1) 使用 CreateJS 等工具将动画导出为 JS 文件。然后制作一个脚本,将数据解析为 *.plist 文件,其中包含指向导出图像的链接、它们的位置等。稍后使用 tweener 为图形设置动画。 您还需要手动绘制矢量形状并将它们保存为 .PNG 文件,因为 CreateJS 不会将它们导出为 PNG。但是很简单,因为 CreateJS 使用了 Flash 的保存 API,你可以准确地得到所有的形状。

缺点是:

  • CreateJS 不支持复杂渐变

  • 把 JS 解析成 PLIST 很痛苦,花了我一整天的时间来写。准备好使用大量的正则表达式

注意:如果您将在设置中使用 CreateJS 工具包,请取消选中紧凑形状选项,它将使矢量数据看起来可读。

2) 制作一个工具,可以读取带有动画的 SWF,并将每个动画保存为 PNG 序列或精灵表(精灵表与 COCOS2dx 配合使用效果更好)。

缺点是:

  • 与 SWF 相比,文件大小会增加,因为您将每个动画的每一帧都作为栅格(除非您的矢量非常复杂以至于它们占用的空间比栅格多)。
  • 您必须将所有动画都呈现在舞台上,因为从库中定位 MovieClip 会出现问题,或者如果它们不为 AS 导出则不可能。

3) 深入研究 JS:FL 并制作您自己的工具,该工具将以您可用的格式导出所有图形。没有缺点,但我觉得很难做到。

4) 如果您在 MovieClips 中没有带有 MovieClips 的多级动画,您只需右键单击动画并将其导出为工作表/序列即可,这样做非常快,但您会花费很多如果您有多个级别,则需要编辑 FLA 文件以满足要求(您需要将父 MC 转换为图形,以便它可以在单个时间线上播放)。

您可能希望以替代方式导出动画,而不是 sprite 表或序列,例如骨骼动画,您可以在其中保存更复杂动画的每个部分和补间/动画点列表。 我在这里写了一篇关于它的文章:Using SWF animation in Haxe/OpenFL applications 这与 COCOS 无关,但它适用于任何平台通用的技术。

正如您所见,这并不全是坏消息,但您必须为此编写一些代码,因为没有公共工具可以做到这一点。我必须制作上面列出的所有工具,我可以建议你坚持第一个选择。

【讨论】:

    【解决方案2】:

    最好的解决方案是 GAFConverter。您可以在 Cocos 2dx 网站上找到 GAF 动画播放器。 它可以帮助您将动画转换为一种格式,然后轻松地将它们添加到您的项目中。

    【讨论】:

      【解决方案3】:

      您可以将 Flash 动画导入CocoStudio 工具,进一步您可以为 Cocos2d-x 项目创建或导出动画。

      查看Cocos2d-x-2.2 版本。 TestCpp 项目的扩展类别中包含许多示例。

      查看CocoStudio工具http://www.cocos2d-x.org/download

      【讨论】:

        【解决方案4】:

        我为此编写了自己的轻量级解决方案。它在 Objective C / Cocos2d 中,但你可以转换它——它只有几个类。

        一个简单的库,用于在 iOS / cocos2d 中导出和动画化 Flash 符号,包含示例。

        工作流程:

        • 在 Flash 中将动画创建为带有包含图形符号的动画层的 MovieClip。
        • 使用包含的 JSFL 脚本将动画导出为 JSON + 帧 PNG。
        • 将 PNG 转换为精灵表(使用您自己的工具,我使用 - http://www.codeandweb.com/texturepacker
        • 在应用程序包中包含动画 JSON 文件和精灵表。
        • 加载纹理,使用简单的命令在精灵上运行复杂的多层动画。

        在 github 上查看:

        这是我的第一个 github 提交,我很好奇人们发现它有多么有用,所以请告诉我。

        【讨论】:

        • 转换成支持cocos2d-x3.0方便吗?
        • 我想会的,前提是你熟悉 Obj-C 和 C++。
        猜你喜欢
        • 2014-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        相关资源
        最近更新 更多