Cocos2d-x 中載入骨骼動畫資源
Cocos Studio是一套基於Cocos2d-x的免費遊戲開發工具集,它能幫助開發者快速建立遊戲資源,將大部分繁瑣的遊戲開發工作使用編輯器來快速製作,進一步幫助遊戲開發者減短開發週期、提高開發效率。
Cocos Studio本身不光只是針對骨骼動畫的編輯而設計的,它還提供了UI、場景和資料等資訊的編輯工作。就當前的Cocos Studio而言,主要分兩種,一種是Win版本的Cocos Studio,另一個則是剛剛釋出不久的Mac版 Cocos Studio v1.0 alpha1。前者由UI編輯器、動畫編輯器、場景編輯器和資料編輯器四部分組成,分別用於處理遊戲中的UI介面、動畫資源、遊戲場景和遊戲資料。而Mac版的Cocos Studio整合了原有的UI和動畫編輯器,使小夥伴們的使用更加自由。至於想要更清楚的瞭解骨骼動畫編輯器,可以到網上查詢。
那麼接下來我們介紹一下如何載入骨骼動畫資源
在Cocos2d-x程式中使用Cocos Studio動畫首先需要包含相關標頭檔案,如下#include "cocostudio/cocostudio.h"
usingnamespace cocostudio;
建立一個骨骼動畫物件,需要將動畫檔案和資原始檔載入到程式。這裡我們通過ArmatureManager動畫資料管理器來載入動畫。ArmatureManager本身是一個單例,它管理整個場景中的Armature。而Armature則封裝了我們播放動畫需要的Animation。由此可見,這是一個三層締結的層次結構。其中ArmatureManager最大,然後是Armature,最後是Animation。
ArmatureDataManager::getInstance()->
addArmatureFileInfo(“xxx.ExportJson”,”xxx.plist”,”xxx.png”);//三種檔案
Armature* am1=Armature::create(“xxx”); //建立動畫物件
am1 -> setTag(110);
am1->getAnimation()->play(“walk”)//播放動畫 walk 只是其中的一項
this->addChild(am1);放動畫需要根據具體地需要來播放,這樣才能知道使用者要播放的動畫是哪一個。可以像上面程式碼一樣指定動畫名來播放動畫,也可以通過指定動作編號來播放動畫,如下:
am1->getAnimation()->playWithIndex(0);//播放第一組動畫
既然都說了這麼多了,那就在贈送些吧·····
//設定動畫的回撥函式
am1->getAnimation()->setMovementEventCallFunc([] (Armature *ani, MovementEventType tp, const std::string & name){
if (tp==MovementEventType::COMPLETE) {
CCLOG("tp%d,name:%s",tp,name.c_str());//可以輸出檢測一
下
if(strcmp(name.c_str(), “attack”)==0) //attack為檔案中的另一組動畫
{
am1->getAnimation()->play("walk");
}
}
});
//觸控後 變換動作
auto lis=EventListenerTouchOneByOne::create();
lis->onTouchBegan=[&](Touch* t,Event *e){
Armature *am2=(Armature *)this->getChildByTag(110);//由於在函式中我需要通過編號來獲取上面建立的物件
am2->getAnimation()->play("stand"); //檔案中的站立動畫
Director::getInstance()->getEventDispatcher()
->addEventListenerWithSceneGraphPriority(lis, this);
相關推薦
Cocos2d-x 中載入骨骼動畫資源
Cocos Studio是一套基於Cocos2d-x的免費遊戲開發工具集,它能幫助開發者快速建立遊戲資源,將大部分繁瑣的遊戲開發工作使用編輯器來快速製作,進一步幫助遊戲開發者減短開發週期、提高開發效率。 Cocos Studio本身不光只是針對骨骼動畫的編輯而設計的,它還提供了UI、場景和資料等資訊的編
Cocos2d-x中替換動畫(Armature)中的節點與粒子
Cocos2d-x遊戲開發中常用到骨骼動畫Armature,Armature不僅佔用資源不大(相對於幀動畫來說),而且還能新增幀事件,它還自帶有動畫的播放、停止、迴圈事件等。 廢話少說,直入主題。拿到一個骨骼動畫的時候,我們往往會有這樣的需求:在情況A
Mac下使用Cocos2d-x Lua載入Cocos Studio到處的Json檔案和動畫
本文轉自:http://segmentfault.com/blog/tangyunlou/1190000000648696 一、匯入Json 1、開啟Cocos Studio,新建專案,然後開始拖自己需要的控制元件和設計各種幀動畫。因為是beta版的,還有一些bug,比
Cocos2d-x中Vector<T>容器以及實例介紹
top 宋體 hello 操作符 模板類 log ins bsp main Vector<T> 是Cocos2d-x 3.x推出的列表容器,因此它所能容納的是Ref及子類所創建的對象指針,其中的T是模板,表示能夠放入到容器中的類型,在Cocos2d-x 3.x
cocos2d-x 中XML解析與數據存儲
lba false 網上 unsigned failed popu new ccm cfile 一不小心就玩了一周的遊戲了。哎。玩的時候時間過得總是這麽快。。。 於是今天決定看一下之前不怎麽非常熟悉的XML;(之前做遊戲時數據的儲存用到過XML,但這塊是還有一個同事在做
linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
water span x86 code bject data- ace 技術分享 inux 解決cocos2d-x中編譯出現的一個小問題 對於cocos2d-x 2.×中編譯中,若頭文件裏引入了#include "cocos-ext.h",在進行C++編譯的時候會遇到例
實例介紹Cocos2d-x中Box2D物理引擎:碰撞檢測
函數實現 pda creates pty blank oid rtu and 重構 在Box2D中碰撞事件通過實現b2ContactListener類函數實現,b2ContactListener是Box2D提供的抽象類,它的抽象函數:virtual void BeginC
Cocos2d-X中Menu的綜合運用
cond edi ros log 程序 cal coo 項目 綜合 今天將曾經寫的代碼和項目集成到了一個菜單中,能夠通過菜單切換到曾經做的項目 程序的project文件夾 主要代碼分析: LessonMenu.h中實現創建菜單,遍歷菜單通過菜單切換
實例介紹Cocos2d-x中Box2D物理引擎:HelloBox2D
pre all align 討論 響應 算法 站點 virtual origin 我們通過一個實例介紹一下。在Cocos2d-x 3.x中使用Box2D物理引擎的開發過程,熟悉這些API的使用。這個實例執行後的場景如圖所看到的,當場景啟動後,玩家能夠觸摸點擊屏幕,每次觸
Cocos2d-X中的聲音和音效
循環 volume tid ng- cocos2d pop sin 返回值 source 在玩遊戲時都會有各種遊戲音,如啟動遊戲時會有背景音,勝利或者失敗會有一些音效。在Cocos2d-X中能夠使用CocosDenshion實現各種聲音 在使用CocosDensh
Cocos2d-x可以實現的動畫效果
動畫效果 ace 所在 nsh ans self 翻頁 led face 動作(Actions)move移動:moveto/moveby 從一個位置移動到另外一個位
CSharpGL(50)使用Assimp載入骨骼動畫
CSharpGL(50)使用Assimp載入骨骼動畫 在(http://ogldev.atspace.co.uk/www/tutorial38/tutorial38.html)介紹了C++用Asismp庫載入骨骼動畫的原理和流程。 在(http://wiki.jikexueyuan.com/project
cocos2d-x 中選單類
選單相關類包含:選單類和選單項類,選單類圖,從類圖可見Menu類繼承於Layer。 選單項類圖,從圖中可見所有的選單項都是從BaseMenuItem繼承而來的,BaseMenuItem是抽象類,具體使用時是使用它的6個子類。 說明如下: MenuItem 最基本的選單
Cocos2d-x中的4種佈局
Cocos2d-x中一共有4種佈局:ABSOLUTE(絕對佈局)、HORIZONTAL(水平佈局)、VERTICAL(垂直佈局)和RELATIVE(相對佈局)。 注意,只有在絕對佈局內部,元件使用setPosition()方法來指定其位置。另外三種佈局中的元件,setP
卡通渲染Cocos2d-x中的實現(描邊與對物體表面顏色的色階化)
卡通渲染Cocos2d-x中的實現 在一些型別的遊戲中,使用卡通渲染能夠將原有模型的一些細節剝離,使原本比較寫實的模型變得卡通化。在這裡,我向大家介紹簡單介紹一下如何在Cocos2d-x中實現卡通渲染。 事實上,卡通渲染具體來說,可以分為兩個部分:描邊與對物體表面顏色的
cocos2d-x中解決點選事件上層響應,下層不響應
解決方案是重寫一個Layer,加在上下層中間,即可只響應上層事件,阻斷了下層的事件,設定優先順序,程式碼如下 #ifndef _TouchBlockLayer_H_ #define _TouchBlockLayer_H_ class TouchBlockLayer:
Cocos2d-x 中的Sleep 和USleep
Cocos2d-x跨平臺,但是這個Sleep延時需要區分平臺 (不知道是不是我自己沒有找到),還是
Cocos2d-x中Vector容器以及例項介紹
Vector<T> 是Cocos2d-x 3.x推出的列表容器,因此它所能容納的是Ref及子類所建立的物件指標,其中的T是模板,表示能夠放入到容器中的型別,在Cocos2d-x 3.x中T表
cocos2d-x中box2d的關節
// // HelloWorldScene.cpp // Box2dDemo // // Created by gaocong on 13-6-24. // Copyright __MyCompanyName__ 2013年. All rights reserved
從3DS MAX中匯出骨骼動畫注意的幾件事
編寫外掛從MAX中匯出骨骼動畫的幾點注意事項.1.首先要遍歷所有的MESH,和BONE,並匯出0時刻的MESH所有頂點位置及索引,和BONE的世界變換矩陣的逆矩陣.這些資訊可以單獨放到一個檔案中,以後加入動作時,每個動作可以做為一個檔案.2.如果使用Physique做為蒙皮外