参考:
换装,主要是替换任意插槽的图片,来达到局部换装的目的。
游戏中可以只制作一个人物动画,然后局部替换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