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

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

概述

游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来。比如获得一件装备后人物形象的改变,或者战斗中武器、防具的损坏等。这些变化的实现就要通过动态换肤来实现。在接下来的这个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);

随便找一个按钮,使用下面代码更换皮肤

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

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

3个评论

  • 毛豆小弟 2016-01-16 1楼
    哇喔 原来是这么回事呀 懂了骨骼~
  • 搁浅。 2016-01-18 2楼
    又一个实用教程,已收藏!
  • 苏慈 2016-01-19 3楼
    赞赞赞,很实用的教材