热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:egret:使用DragonBones实现简单换装

本文由编程笔记#小编为大家整理,主要介绍了egret:使用DragonBones实现简单换装相关的知识,希望对你有一定的参考价值。这里采用官方龙骨例子,更换衣服为例:一、
本文由编程笔记#小编为大家整理,主要介绍了egret: 使用DragonBones实现简单换装相关的知识,希望对你有一定的参考价值。

这里采用官方龙骨例子,更换衣服为例:

一、dragonBones编辑器部分

技术分享图片

2.在资源中加入需要更换的图片

技术分享图片

3.将添加的图片拖入到clothes槽中,此处love为添加的图片

技术分享图片

4.选中可见

技术分享图片

5.导出资源

技术分享图片

二、代码部分

1.导入资源

1 let dragon_data = RES.getRes( "Dragon_test_ske_json" );
2 let texturedata = RES.getRes( "Dragon_test_tex_json" );
3 let texturepng = RES.getRes( "Dragon_test_tex_png" );
4
5 let factory:dragonBones.EgretFactory = new dragonBones.EgretFactory();
6 factory.addDragonBonesData( dragonBones.DataParser.parseDragonBonesData(dragon_data) );
7 factory.addTextureAtlasData( factory.parseTextureAtlasData(texturedata, texturepng) );

2.创建骨架

1 let armature:dragonBones.Armature = factory.buildArmature( "Dragon" );

3.对动画添加时钟支持

dragonBones.WorldClock.clock.add( armature );
egret.startTick(
this.dbrun, this);


1 private dbrun( timeStamp:number ):boolean
2 {
3 dragonBones.WorldClock.clock.advanceTime( 0.01 );
4 return true;
5 }

4.play动画:walk为动画名,0无限循环播放

armature.animation.play("walk",0);

5.添加显示容器实例到舞台

1 armature.display.x = 300;
2 armature.display.y = 500;
3 this.addChild(armature.display);

6.点击舞台换装操作

public replaceSlotDisplay( dragonBonesName:string,armatureName:string ,slotName:string ,displayName:string ,slot:dragonBones.Slot ,displayIndex:number ):void

用指定资源替换插槽的显示对象。

参数








 

dragonBonesName:string — 指定的龙骨数据名称。

armatureName:string — 指定的骨架名称。

slotName:string — 指定的插槽名称。

displayName:string — 指定的显示对象名称。

slot:dragonBones.Slot — 指定的插槽实例。

displayIndex:number — 要替换的显示对象的索引,如果未设置,则替换当前正在显示的显示对象。


1 this.stage.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{
2 console.log(‘111‘);
3 this.num ++;
4 if(this.num%2 == 0){
5 factory.replaceSlotDisplay(‘Dragon_test‘,‘Dragon‘,‘clothes‘,‘love‘,armature.getSlot(‘clothes‘));
6 }else{
7 factory.replaceSlotDisplay(‘Dragon_test‘,‘Dragon‘,‘clothes‘,‘parts/clothes1‘,armature.getSlot(‘clothes‘));
8 }
9 },this);

效果展示:

技术分享图片

 


推荐阅读
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • Java并发机制详解及其在数据安全性保障中的应用方案 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • Flutter中计算文本尺寸的方法
    在Flutter开发中,有时需要计算文本的宽度和高度。本文介绍了一种利用TextPainter类实现这一功能的方法。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
author-avatar
缤纷之铃6868
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有