Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

发表于2016-01-15
评论3 3.6k浏览

概述

游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来。比如获得一件装备后人物形象的改变,或者战斗中武器、防具的损坏等。这些变化的实现就要通过动态换肤来实现。在接下来的这个Demo中,点击屏幕会动态更换小人手中的武器。先上图:

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

制作动画

我这里使用cocostudio自带的动画工程,HeroAnimation,打开。

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

添加我们的资源

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

插入渲染资源

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

导出资源到工程的Resource目录

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

代码引用

加载动画

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); } }

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引