请问关于换装换武器的问题[已解决]

最近需要做一个能够换装换武器的带动作的人物
studio版本1.3
2dx版本2.2.3
我先拿演示实例做了一个简单的,就是那个Hero拿剑小人的演示,(论坛怎么上传不了图片额)

代码部分是这样的:(有2个plist文件的是要这样加载吧?)

CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“armature/Hero0.png”,“armature/Hero0.plist”,“armature/Hero.ExportJson”);
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“armature/Hero0.png”,“armature/blood.plist”,“armature/Hero.ExportJson”);
CCArmature* pHero2 = CCArmature::create(“Hero”);
pHero2->getAnimation()->playWithIndex(0);
pHero2->setPosition(ccp(500,240));
this->addChild(pHero2,1);

//创建皮肤
CCSkin* weaponSkin = CCSkin ::createWithSpriteFrameName(“gun04.png”); //gun04.png是一个单独的武器的图,我想用这个图替换掉原来的剑
pHero2->getBone(“Layer17”)->addDisplay(weaponSkin,0); //原来的剑所在的是Layer17
pHero2->getBone(“Layer17”)->changeDisplayWithIndex(0, true); //显示新添加的骨骼

但是实际效果却只是原来的剑消失了,并没有显示出新武器,请问哪里有什么问题?需要怎么做才能让我的gun04.png显示在剑的位置呢?

您好,根据您的方法来看是没有任何问题的,如果是没有显示,请您检查是否将对应的图片成功加载到内存中(重点的png路径)。感谢您对cocostudio的支持。

检测了一下确实是图片没加载进来,但路径没错,于是我换了个方法用
CCSkin* weaponSkin = CCSkin::create(“gun04.png”);
就成功了,感谢回馈。

楼上用CCSkin* weaponSkin = CCSkin ::createWithSpriteFrameName(“gun04.png”); 是通过精灵帧创建ccskin,创建精灵帧会去CCSpriteFrameCache类里面去找相应的png图片,如果楼主将"gun04.png"图片所在的plist文件事先加进CCSpriteFrameCache精灵帧缓存中就没事了。

1024 1024

1024 1024

so good ,学习啦:2::7: