上回講到如何用cocosbuilder拼接一個完整動畫文件出來。
ok,這回就講如何把動畫文件導入到我們的遊戲代碼中並使用。
第一步:用cocosbuilder導出數據文件
很簡單,選中要導出的ccb文件,然後點擊file->publish就可以了。
導出的文件在你的項目目錄下能找到,後綴爲.ccbi的文件就是對應的ccb文件的數據導出文件了。
現在把playerAni.ccbi文件拷貝到我們vs的工程目錄資源文件夾下
第二步:新建一個cocos2d-x工程
這裏我以最簡單的helloworld爲例子就可以了
新建之後出現如下畫面表示成功,這部分的內容可以去網上搜索,或者cocos2d-x官網瞭解
這裏有個點要注意就是一定要在工程包含頭文件的目錄中加入 “e:\cocos2d-2.0-x-2.0.3\extensions"這個目錄,e盤是我放置cocos2dx的目錄,前面你們可以根據各自的具體目錄具體設置。
第二步:添加ccbi文件讀取類
基礎的類可以從cocos2d-x的例子代碼中截取,這裏我給大家截取好了,3個基礎動畫類文件在附件中,大家可以下載使用,簡單添加到工程就行了。
添加進基礎文件之後,接下來,我們修改下HelloWorldScene.h和HelloWorldScene.cpp文件
首先是HelloWorldScene.h文件
頭文件部分,我們要加入包含語句
- #include "cocos-ext.h"
- #include "AnimationsLayerLoader.h"
- using namespace cocos2d::extension;
接下來修改HelloWorldScene.cpp文件
在HelloWorldScene.cpp的init方法中插入下面的語句
- CCBAnimationManager *actionManager = NULL;
- CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
- ccNodeLoaderLibrary->registerCCNodeLoader("AnimationsTestLayerLoader", AnimationsTestLayerLoader::loader());
- /* Create an autorelease CCBReader. */
- cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
- /* Read a ccbi file. */
- CCNode * node = ccbReader->readNodeGraphFromFile("boneCCb/playerAni.ccbi", this,&actionManager);
- ((AnimationsTestLayer*)node)->setAnimationManager(actionManager);
- ccbReader->release();
- node->setPosition(ccp(100,160));
- AnimationsTestLayer * spr = (AnimationsTestLayer *)node;
- if(node != NULL) {
- this->addChild(node);
- }
今後如果要加入其它動畫,只需修改
CCNode * node = ccbReader->readNodeGraphFromFile("boneCCb/playerAni.ccbi", this,&actionManager);
這句代碼中的ccbi文件名就可以了
ok,大功告成,接下來運行,看看效果
我的工程文件在附件中可以下載
另外如果大家對動畫方面想研究得更加深入,可以查閱火雲洞紅孩的博客