Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1、概述

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


2、制作小人

首先我们先制作一个UI小人,并将显示资源绑定到骨骼上。有不太明白的同学,可以看看:Cocos2d-x 3.0开发(六)使用cocoStudio创建一个骨骼动画。我随便找了些资源,做出来大概是这样:

接下来我们想这样一个问题。武器是拿在手里的,当手移动时,武器当然要跟着动。因此武器与手之间是有关系的,即武器的状态会受到手的影响而改变。这实际上就是父子关系。所幸cocoStudio中的骨骼支持这种操作,我们需要右击“武器骨骼”,在菜单中找到“绑定父关系”,点击后再点击它的父骨骼——我们的“手臂骨骼”即可。


3、制作动画

制作动画的过程就没什么需要特别注意的了,大家自己发挥就成。我在这里制作了一个名为“go”的动作。

做完后将文件导出。

4、运行到程序

运行脚本,创建一个新项目。将导出文件复制到Resource中。

修改init的代码:


  1. boolHelloWorld::init()
  2. {
  3. //////////////////////////////
  4. //1.superinitfirst
  5. if(!Layer::init())
  6. returnfalse;
  7. }
  8. SizevisibleSize=Director::getInstance()->getVisibleSize();
  9. Pointorigin=Director::getInstance()->getVisibleOrigin();
  10. ArmatureDataManager::getInstance()->addArmatureFileInfo("changeShape.ExportJson");
  11. Armature*arm=Armature::create("changeShape");
  12. arm->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
  13. arm->setTag(1);
  14. addChild(arm);
  15. arm->getAnimation()->play("go");
  16. setTouchEnabled(true);
  17. true;
  18. }

编译运行,应能够看到动画播放。

5、 添加与更换皮肤

添加皮肤方式分动态添加与静态添加两种。动态添加是指在编辑器中更改,这样可以不需要重新编译程序。静态添加则是将其写死在程序中,通常这种做法不推荐,但我们也应该会使用。更换的做法是我们首先要取到具体的骨骼,然后更改它显示的“皮肤”。


5.1动态添加

在“动画编辑”的模式下选中我们的武器。然后将我们需要更换的武器资源依次拖动到“渲染资源”中。点开下拉列表,我们能看到添加过的资源,右击也可以删除。



添加好后,保存并导出。

在工程中,我创建了一个int的成员变量displayIndex。并在init中初始化为0。接下来我们加入点击响应来更换皮肤。


    voidHelloWorld::onTouchesEnded(conststd::vector<Touch*>&touches,Event*event)
  1. ++displayIndex;
  2. displayIndex=(displayIndex)%4;
  3. ((Armature*)getChildByTag(1))->getBone("weapon")->changeDisplayByIndex(displayIndex, }

5.2静态添加

使用静态添加有一点要注意:要保证创建的资源已经导出了。

我们在init中添加:


    //……
  1. Skin*skin=Skin::createWithSpriteFrameName("sliderProgress.png");
  2. arm->getBone("weapon")->addDisplay(skin,4);
  3. //……

并将点击响应中循环量从4更改为5。

编译运行即可看到效果。

大佬总结

以上是大佬教程为你收集整理的Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤全部内容,希望文章能够帮你解决Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:
猜你在找的Cocos2d-x相关文章
其他相关热搜词更多
JavaScript之正则表达式学习笔记