在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