DragonBones龙骨换装(局部换装)

参考:

Egret官方换装动画

换装,主要是替换任意插槽的图片,来达到局部换装的目的。

游戏中可以只制作一个人物动画,然后局部替换100套衣服、100套发型或者100种眼睛。甚至可以把人和衣服所有插槽都换了。

下图替换了衣服。

     

一、创建一个测试骨骼动画

public armatureDisplay:dragonBones.EgretArmatureDisplay;
public createBone(){    let factory = dragonBones.EgretFactory.factory;
    factory.parseDragonBonesData(RES.getRes("test_ske_dbbin"));
    factory.parseTextureAtlasData(RES.getRes("test_tex_json"), RES.getRes("test_tex_png"));
    this.armatureDisplay = factory.buildArmatureDisplay(name);
    this.addChild(this.armatureDisplay);}

  

二、封装的换装类

    /**
     * 替换插槽
     * @param slotName 插槽名称 原材料
     * @param textureName 图片名  xxx_png
     * @param 偏移量
     */
    public setNewSlot( slotName:string, textureName:string ,offsetX:number=0, offsetY:number=0){
        var slot:dragonBones.Slot = this.armatureDisplay.armature.getSlot(slotName);
        var b:egret.Bitmap = new egret.Bitmap();
        b.texture = RES.getRes(textureName);
        b.x = slot.display.x;
        b.y = slot.display.y;
        b.anchorOffsetX = b.width/2 + offsetX;
        b.anchorOffsetY = b.height/2 + offsetY;
        slot.setDisplay( b );
    }

三、换装。替换人和手的插槽。

this.armatureDisplay.setNewSlot("人", "people_png");
this.armatureDisplay.setNewSlot("手", "hand_png");

  

 

原文地址:https://www.cnblogs.com/gamedaybyday/p/9544026.html

时间: 2024-10-06 08:35:06

DragonBones龙骨换装(局部换装)的相关文章

spine在cocos2d-x中进行局部换肤

最近发现越来越多的游戏热衷用spine来做动画,做出来的效果真是生动美妙啊.我也来研究一下.期间就遇到了两个问题,一个是局部换肤的问题,一个是碰撞的时候.我先来解决局部换肤的问题. 看了看cocos2d-x 提供的spine的demo,虽然没有局部换肤但是有整体换肤的功能,我觉得这就是解决问题的突破口.在cocos2d-x3.4中,换肤的函数是SkeletonRenderer 类中的这个函数: bool setSkin (const std::string& skinName); 首先看看函数的

杭州软装培训:“硬装”和“软装”的区别

    提起"软装饰",我们更多地想到的是窗帘.地毯.壁挂,卧室内的被套.床单.毛毯.枕巾.枕套等根据装修效果所选择的融应用和装饰于一体的室内装饰产品.     今天五色光为大家普及一下软装和硬装的知识.     事实上,现代意义上的"软装饰"已经不能和"硬装饰"割裂开来,人们把"硬装饰"和"软装饰"设计硬性分开,很大程度上是因为两者在施工上有前后之分,但在应用上,两者都是为了丰富概念化的空间,使空间异化,

先装.net后装iis的问题

如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:(即就是先装的是visual stuido 2010的话,在安装IIS 7) 32位的Windows:---------------------------------------------------------------------------1. 运行->cmd 2. cd  C:\Windows\Microsoft.NET\Framework\v4.0.30319 3. aspnet_regiis.exe -

unity 热更新 c# 实战经验分享(二) - 动态Protobuff协议,再也不用担心为了换条协议换包了 ~~!

先提前说明一下,如果哪位小伙伴 觉得生疏的话,可以看这篇博客的前面两个博客,里面讲述了 高大上 JSB,unity 热更新方案,用强大的宇宙第一编辑器vs 来开发 unity 热观更新脚本,更新c# 不在是梦 这次的demo 工程我已经长传了,地址 在这里http://pan.baidu.com/s/1qWQlXUW:下载后(放在D盘 放在D盘 放在D盘!!!!)里面的unity 工程直接打开然后运行main 场景 .就会出现下图,这篇博客唯一 的意义就在于这个demo,实战就是实战不跟你讲废话

dede换空间或换服务器后,后台站点设置无法保存中文的处理办法

因业务的需要,有一个网站需要换服务器,把数据库及程序都备份好,打包传到新的服务器里. 并在服务器上安装php的环境,一切看起来很美好. 安装过程也很顺利. 但最后的结果是后台站点设置无法显示数据.大部分显示空白. 不明白为什么会这样,然后把程序及数据都删除了,重新在服务器上进行安装,然后再从后台进行恢复数据 但问题还是无法解决. 这里有几个现象: 1.数据其实是存在的,查看数据库里的数据是有的.但就是无法显示. 2.在站点设置里输入英文或数字是可以正常保存及显示的.就是填写中文后无法显示出来.

换硬盘,换网卡、换网线,最后发现原来是机房在路由器上设置了带宽限速。

下面是3台机子在同一时间段的网络带宽使用情况,从下面的三个图中可以看出,机器A的带宽使用情况很不稳定,忽高忽低,前一秒带宽使用1M,下一秒可能就达到20M,机器B和机器C的带宽使用情况明显就比较稳定,先看下面的截图: 机器 - A 机器 - B 机器 - C 关于机器A这种情况,我一开始以为硬盘问题,硬盘用了二年,可能出现什么坏道,影响读取速度,导致带宽不稳定. 然后给这台机子加了一块硬盘,然后把主要读取的文件全转移到新硬盘上,然后测试发现没什么变化,问题仍然存在. 后来又想,可能是网卡有问题,

网页换肤,模块换肤,jQuery的Cookie插件使用(转)

具体效果如下: 第一次加载如下图: 然后点击天蓝色按钮换成天蓝色皮肤如下图: 然后关闭网页重新打开或者在打开另一个网页如下图: 因为皮肤用Cookie保存了下来,所以不会重置 具体的实现代码如下: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head>    <meta charset="utf-8" />

DragonBones龙骨骨骼中的自定义事件(另有声音、动画事件)

参考: DragonBones骨骼动画事件系统详解 一.在DragonBones中添加自定义事件帧 动画制作时 时间轴拉到最下面有一个事件层,添加一个事件帧 左边属性面板定义自定义事件 二.Egret中监听事件 新建一个测试用骨骼动画test //新建测试用骨骼动画 let armatureDisplay:dragonBones.EgretArmatureDisplay; let factory = dragonBones.EgretFactory.factory; factory.parseD

装win7英文版装系统学习

1:语言变换,下载Vistalizator ,详细的方法点击:方法见.需要安装语言包,语言包地址请点击:语言包.