做个小骨骼动画demo给大家试试先。
设置一个加载的label
CCLabelTTF *l = CCLabelTTF::create("0.0", "Arial", 50);
l->setColor(ccColor3B(ccBLUE));
addChild(l, 1, 10001);
l->setPosition( CCPoint(visibleSize.width/2, visibleSize.height - 60) );异步骨骼动画数据加载
//自己的骨骼动画
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("test/BZ.ExportJson", this, schedule_selector(HelloWorld::dataLoaded));
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("test/JuRen.ExportJson", this, schedule_selector(HelloWorld::dataLoaded));
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("test/3.ExportJson", this, schedule_selector(HelloWorld::dataLoaded));
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("test/JR.ExportJson", this, schedule_selector(HelloWorld::dataLoaded));
编写回调函数
void HelloWorld::dataLoaded( float percent )
{
CCLabelTTF *label = (CCLabelTTF *)getChildByTag(10001);
if (label)
{
char pszPercent[255];
sprintf(pszPercent, "%s %f","W_W", percent * 100);
label->setString(pszPercent);
}
if (percent >= 1 && backItem&& nextItem)
{
backItem->setEnabled(true);
nextItem->setEnabled(true);
}
}等回调完后就可以调用产生骨骼动画了
如下
CCArmature *armature = NULL;
armature = CCArmature::create("JuRen");
armature->getAnimation()->playByIndex(1);
armature->setPosition(CCPoint(300, 300));
addChild(armature);这样就成功能看到骨骼动画了祝你也能成功

本文演示如何在程序中创建骨骼动画并实现异步加载数据,通过使用逐个加载不同动画文件的方式,确保动画流畅播放。同时,文章介绍了在加载完成后,如何根据进度更新UI元素和启用交互功能,最终成功展示完整的动画效果。
830

被折叠的 条评论
为什么被折叠?



