COCOS2D-X专用的DRAGONBONES2.2

本博客详细介绍了COCOS2D-X专用DragonBones2.2插件的改进内容,包括解决导出问题、新增导出类型、支持PLIST文件和优化导入代码等。适用于对COCOS2D-X骨骼动画感兴趣的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

COCOS2D-X专用的DRAGONBONES2.2

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本文标题:cocos2d-x专用的DragonBones2.2
  • 本文链接:http://zengrong.net/post/1915.htm

  • 2014-04-28更新:更新 DragonBones 官方C++版本 for cocos2d-x
  • 2013-09-23更新:升级到DragonBone2.2.2 for cocos2d-x,支持导出PLIST文件。

我写过一篇 在cocos2d-x中使用DragonBones ,这篇文章中提到了DragonBones插件。本篇是一个补充。

重要更新 2014-04-28

DragonBones 开发组已经对 DragonBones 进行了官方的 C++ 移植,很多问题都不复存在了。详情看这里 DragonBones 官方C++版本 for cocos2d-x 。

插件问题

在 CocoStudio官方下载页面 中提供了一个DragonBones插件,用于导出cocos2d-x可以识别的骨骼动画格式。

但是,这个插件有个问题。

在导出时,如果使用“Zip(XML和分开的PNG)”类型(事实上,对于cocos2d-x来说,只能选择这个选项),同时设置“导出缩放比”选项不为1的时候,导出的元数据文件中的坐标都没有经过缩放。

export_scale

这将导致动画在播放的时候出现问题,就像这样:

dragon_err

其实,这个问题并不是由于修改DragonBones所形成的,而是原来的DragonBones2.0就存在这个问题。

如果你有兴趣研究的话,可以看这里 ExportDataCommand.as ,这里判断了 _exportType 值为4的情况下不缩放坐标。而“Zip(XML和分开的PNG)”就代表4。

另外,这个插件是基于2.0版本,而目前的DragonBones最新版本是2.3。当然,由于 2.3的DataFormat改动太大 ,暂时不能使用v2.3版本进行修改。但v2.2是可以的。

如果你再次有兴趣的话,可以找到cocos2d-x负责解析骨骼动画元数据的类 [cocos2d-x]\extensions\CCArmature\utils\CCDataReaderHelper.cpp ,通过修改它,来支持新的格式。

DragonBone2.2.2 for cocos2d-x

基于上面的原因,我以DragonBones2.2版本为基础制作了这个插件,并重新打包发布。

我做的工作并不多,只是花了一些时间理解了DragonBonesDesignPanel的结构。

  • 这个项目包含了 SkeletonAnimationLibrary 和SkeletonAnimationDesignPanel 项目v2.2的内容,做了少量的修改;
  • jsfl的修改,直接比较 这3个文件即可。其中 skeleton.jsfl.original是原始文件, skeleton.jsfl.20cocos2dx 是2.0修改版提供的文件, skeketon.jsfl 是我修改的文件;
  • 导出面板中,我增加了两种导出类型 “Zip(XML and PNGs, for cocos2d-x)”、“Zip(XML+PLIST+PNG, for cocos2d-x)”;
  • export2
  • 如果选择“Zip(XML+PLIST+PNG, for cocos2d-x)”,可以直接输出XML、PLIST和拼合后的PNG文件,这样就不必再使用其他工具将分离的PNG拼合了;
  • 我修改了导入代码,现在也能在DesignPanel中导入“Zip(XML and PNGs, for cocos2d-x)”类型导出的资源;
  • 其他的修改,请直接比较源码;
  • 如何使用可以看这里: 在cocos2d-x中使用DragonBones

感谢 DragonBones Team 带来这样优秀的软件;

感谢对 DragonBones2.0 进行修改的程序员;

希望这个项目对你们有用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值