Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤
发表于2016-01-15
概述
游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来。比如获得一件装备后人物形象的改变,或者战斗中武器、防具的损坏等。这些变化的实现就要通过动态换肤来实现。在接下来的这个Demo中,点击屏幕会动态更换小人手中的武器。先上图:
制作动画
我这里使用cocostudio自带的动画工程,HeroAnimation,打开。
添加我们的资源
插入渲染资源
导出资源到工程的Resource目录
代码引用
加载动画
ArmatureDataManager::getInstance()->addArmatureFileInfo("Ami/Hero.ExportJson"); m_armature_hero = Armature::create("Hero"); m_armature_hero->setPosition(VisibleRect::center()); m_armature_hero->getAnimation()->playWithIndex(1); this->addChild(m_armature_hero);随便找一个按钮,使用下面代码更换皮肤
void HelpLayer::button_next_callback( cocos2d::Ref* obj, TouchEventType type ) { Widget* equip = (Widget*)obj; if (type == TOUCH_EVENT_ENDED) { m_armature_hero->getBone("Layer17")->changeDisplayByIndex(1, true); } }