大家好,在這里我想分享一下CocoStudio的動(dòng)畫(huà)編輯器幀事件,以及在代碼里面如何調(diào)用CocoStudio動(dòng)編,關(guān)于基礎(chǔ)的CocoStuio方法請(qǐng)查看CocoStudio的基礎(chǔ)視頻.還有我是第一次寫(xiě)博客如果有什么地方寫(xiě)錯(cuò)了,請(qǐng)多多指點(diǎn).
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷(xiāo)型網(wǎng)站、網(wǎng)站重做改版、西山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為西山等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。在講解骨骼動(dòng)畫(huà)的幀事件之前我想說(shuō)一下基礎(chǔ)視頻里面的CocoStudio里面的動(dòng)畫(huà)編輯器跟現(xiàn)在最新版的動(dòng)畫(huà)編輯器之間的區(qū)別,最新版的動(dòng)畫(huà)編輯器有2個(gè)模式.一個(gè)是形體模式,另一個(gè)是動(dòng)畫(huà)模式,在最新版本中我們需要在形體模式下構(gòu)建骨骼動(dòng)畫(huà),然后再動(dòng)畫(huà)模式下編輯,而基礎(chǔ)視頻中的教程是不區(qū)分動(dòng)畫(huà)模式與形體模式的.
就介紹到這里我們進(jìn)入正文.什么是幀事件?幀事件就是當(dāng)我播放動(dòng)畫(huà)時(shí)當(dāng)?shù)竭_(dá)一定幀數(shù)以后可以觸發(fā)一些額外的事情.比如說(shuō)當(dāng)我播放一個(gè)×××手開(kāi)槍的動(dòng)畫(huà)我可以把當(dāng)×××手把槍抬起的時(shí)候發(fā)射×××,然后把槍放回去.如果想觸發(fā)幀事件需要在CocoStudio的動(dòng)畫(huà)模式下的指定幀上面定義一個(gè)名稱,如下圖
接下來(lái)導(dǎo)出該項(xiàng)目后來(lái)看看在C++代碼里面是如何調(diào)用的吧,對(duì)了我在這里使用的是Cocos2dx3.0Bata2,關(guān)于Cocos2dx2.x的會(huì)在明后天制作.用Cocos2dx3.x版本時(shí)需要先導(dǎo)入一下Lib文件,如圖
cocos\editor-support\cocosbuilder\proj.win32,與cocos\gui\proj.win32將這兩個(gè)導(dǎo)入進(jìn)來(lái)。然后再你的項(xiàng)目上點(diǎn)右鍵屬性包含代碼
就可以在代碼里使用CocoStudio的項(xiàng)目了。
這里是我的Demo
#include "cocostudio/CocoStudio.h" using namespace cocostudio; //因?yàn)槲覍?dǎo)出CocoStudio項(xiàng)目時(shí)生成了2個(gè)Png跟plist文件所以加載了2次 ArmatureDataManager::getInstance()->addArmatureFileInfo("DemoPlayer0.png","DemoPlayer0.plist","DemoPlayer.ExportJson"); ArmatureDataManager::getInstance()->addArmatureFileInfo("DemoPlayer1.png","DemoPlayer1.plist","DemoPlayer.ExportJson"); //切忌這是CocoStuio的項(xiàng)目名稱 auto pAni = Armature::create("DemoPlayer"); pAni->getAnimation()->playWithIndex(0); //這里是播放第幾個(gè)動(dòng)畫(huà)。 pAni->setPosition(Point(visibleSize.width*0.5f,visibleSize.height*0.5f)); pAni->setScale(0.75f); this->addChild(pAni,10);
現(xiàn)在來(lái)設(shè)置幀回調(diào)首先聲明一個(gè)回調(diào)函數(shù)
void onFrameEvent(Bone *bone, const std::string evt, int originFrameIndex, int currentFrameIndex);//在頭文件中聲明 //在Cpp中實(shí)現(xiàn) void HelloWorld::onFrameEvent( Bone *bone, const std::string evt, int originFrameIndex, int currentFrameIndex ) { if(evt == "kaihuo"){ log("Fire"); } } //在構(gòu)建骨骼動(dòng)畫(huà)時(shí)聲明幀事件回調(diào) pAni->getAnimation()->setFrameEventCallFunc(this,frameEvent_selector(HelloWorld::onFrameEvent));
CocoStudio的幀事件回調(diào)就這么簡(jiǎn)單大家試試把. 我是第一次寫(xiě)博客那里寫(xiě)錯(cuò)了請(qǐng)多多指點(diǎn).
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。