轉自:http://blog.sina.com.cn/s/blog_66116bd90101d0w5.html
上一個項目用的是cocos2d-x 2.0.4的模板,並沒有很好的支持骨骼動畫,用的只是別人寫的骨骼插件,但是並不是很好的與cococs2d匹配。現在終於可以看到有原配了
(添加圖片資源:
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("armature/Cowboy0.png","armature/Cowboy0.plist", "armature/Cowboy.json");
刪除圖片資源:CCArmatureDataManager::sharedArmatureDataManager()->purgeArmatureSystem();)
初始化一個骨骼動畫,並執行動作:
cocos2d::extension::CCArmature *armature = NULL;
armature = cocos2d::extension::CCArmature::create("Dragon");
armature->getAnimation()->playByIndex(1);
armature->getAnimation()->setAnimationScale(0.4f);
armature->setPosition(VisibleRect::center().x, VisibleRect::center().y * 0.3f);
armature->setScale(0.6f);
addChild(armature);
上一個項目,主要用到的就是換裝,也就是切換骨骼動畫的部位圖片,現在可以很好的切換了。
CCSpriteDisplayData displayDate;
displayDate.setParam("robotFolder-bady-a2.png");
armature->getBone("bady-a3")->addDisplay(& displayDate,0);
(bady-a3:骨骼動畫的部位名稱,robotFolder-bady-a2.png:骨骼動畫的部位換成的圖片,後面的index類型寫成0,則替換,否則不能替換)
(2)這個是在相關部位添加例子動畫
CCParticleDisplayData displayData;
displayData.setParam("Particles/SmallSun.plist");
armature->getBone("bady-a3")->addDisplay(&displayData, 0);
(其他方法):armature->getBone("bady-a3")->changeDisplayByIndex(0, true);
armature->getBone("bady-a3")->setIgnoreMovementBoneData(true);
armature->getBone("bady-a3")->setScale(2.2f);
(3)armature->getAnimation()->setAnimationScale(0.1f);控制骨骼動畫的速度