转自: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);控制骨骼动画的速度