[原]quick集成spine动画

更新说明:

新增了骨骼绑定node用法

参考:http://blog.csdn.net/n5/article/details/21795265

在SkeletonRenderer.h 和cpp里面新加了以上链接的内容,在SkeletonRenderer_luabinding.tolua需要新添CCNode* SkeletonRenderer::getNodeForSlot(const char* slotName)

下载地址:http://pan.baidu.com/s/1bnyJw1h 密码:sr2o

 

播放效果:

1、去下载spine的runtime库 地址:https://github.com/EsotericSoftware/spine-runtimes 文件结构

 

二、把spine-c下的include和src 统一整理到spine文件夹,将spine-cocos2d-x/2/src/spine下源码拷贝到之前的spine目录:

三、将spine文件拷贝到quick-2.2.5-plus\lib\cocos2d-x\extensions目录下,引入到vs工程。特别注意 DragonBones下的一些文件 和spine文件同名,需要修改spine里面对应的名字

四、需要导出SkeletonAnimation和SkeletonRenderer类供lua使用。

SkeletonAnimation.h和SkeletonRenderer.h制作好tolua文件,SkeletonAnimation_luabinding.tolua 和SkeletonRenderer_luabinding.tolua放到quick-2.25+plus\quick-cocos2d-x-master\lib\cocos2d-x\external\extra\luabinding下

在build.bat后面添加

call %MAKE_LUABINDING% -d %OUTPUT_DIR% SkeletonAnimation_luabinding.tolua
call %MAKE_LUABINDING% -d %OUTPUT_DIR% SkeletonRenderer_luabinding.tolua

执行 build.bat生成C++绑定,生成的文件引入vs

五 C+调用导出函数

在CCLuaStack.cpp 引入导出的C++类,

#include "SkeletonAnimation_luabinding.h" 

#include "SkeletonRenderer_luabinding.h"。

初始化函数调用

luaopen_SkeletonRenderer_luabinding(m_state);
luaopen_SkeletonAnimation_luabinding(m_state); 

注意一定先调SkeletonRenderer再调SkeletonAnimation,也就是先调父类再调子类,反了回报 addchild错误之类的

六 lua调用spine动画

     local skeletonNode1 = SkeletonAnimation:createWithFile("spineboy.json", "spineboy.atlas", 0.6);
     skeletonNode1:setAnimation(0, "walk", true);
     skeletonNode1:setPosition(ccp(display.width/2,display.height/2))
     self:addChild(skeletonNode1);

  新增骨骼绑定node用法

   local slot = skeletonNode1:getNodeForSlot("muzzle") --需要绑定骨骼的名字
   slot:addChild(sp) --需要绑定的node

 

七:android下使用注意事项

1、quick-2.2.5-plus\lib\cocos2d-x\extensions下的android.mk里面添加spine下的.c和.cpp文件

2、quick-2.2.5-plus\lib\cocos2d-x\external下android.mk添加导出的两个cpp文件(SkeletonAnimation_luabinding和SkeletonRenderer_luabinding)

八 总体目录结构

 

posted @ 2015-06-03 22:26  U_探索  阅读(3111)  评论(0编辑  收藏  举报