码迷,mamicode.com
首页 > 其他好文 > 详细

DragonBones龙骨换装(局部换装)

时间:2018-08-27 21:36:18      阅读:2051      评论:0      收藏:0      [点我收藏+]

标签:his   dex   alt   spl   drag   retf   info   sha   play   

参考:

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

 

 

 

  

 

 

DragonBones龙骨换装(局部换装)

标签:his   dex   alt   spl   drag   retf   info   sha   play   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!