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