在cocos2d-x 3.0 中使用Dragonbones
文章目录
DragonBones官方已经提供了cocos2d-x的库文件SkeletonAnimationLibraryCPP,
目前支持到了2.2.
但是并未提供3.0版本的库,官方说3.0发布正式版时会支持.
如果现在就要使用3.0版本的话稍作修改也是可以实现的.
另外需要注意的是,在写文章时,这个库的master分支貌似有bug,需要使用dev分支的源码修改.
以下DragonBones用db表示.
在项目的wiki中已经说明,平台有关的文件只有以下几个:
- Cocos2dxAtlasNode.cpp
db中使用使用的基本现实对象,类似cocos2d-x中的Node - Cocos2dxDisplayBridge.cpp
db和cocos2d-x现实对象的操作中间件 - Cocos2dxFactory.cpp
db的生成工厂 - Cocos2dxTextureAtlas.cpp
db读取texture的类
其实对于Cocos2dxAtlasNode.cpp可以用Sprite代替,
Cocos2dxTextureAtlas.cpp只用用SpriteFrameCache就好了.
所以这两个类不用改,删掉就好了.
为了实现这一目的,我们需要在db导出素材时选择Zip(XML+PNGS),
这是为了我们可以使用TexturePacker来打包图片素材,用SpriteFrameCache加载.
TexturePacker的打包还是很让人称赞的.

导出以后解压zip,把texture文件夹下的图片用TexturePacker打包到成plist就可以用一下函数加载了:
|
|
下面修改Cocos2dxFactory.cpp.
CC前缀的修改CCNode.h等头文件路径的修改
主要是这个函数:
|
|
Cocos2dxDisplayBridge.cpp基本只用修改头文件和CC前缀就好了,
这个文件只要勇于操作cocos2d-x的显示对象的各种变换和添加移除.
删除其余的Cocos2dx开头的文件,修复各种编译错误.
然后就可以用了
|
|
因为db结构很好,和平台相关的类封装的都很好,
所以修改起来很方便.
其实我们只不过修改了generateDisplay函数,改为使用Sprite这样避免了对Cocos2dxAtlasNode的使用.
利用了cocos2d-x自己的素材加载函数,避免了对Cocos2dxTextureAtlas的使用.
额外一些工作就是删除文件,修改头文件路径,修改编译错误.
文章作者 hao
上次更新 2014-10-10