# DragonBone资源适配

本章节主要介绍,如何使用提供的可定制化Adapter,播放外部的骨骼动画与蒙皮动画。

# 动画效果

dragonboneGif

# 创建场景

  1. 构建带有需要进行动画的二维场景。

# 资源准备

  1. 将 dragonbone 所需动画资源放入项目目录,由于外部资源不会做依赖分析,所以需将资源设置为入口资源。 assets

  2. 构造 dragonboneAdapter, 可直接使用示例带有的产物,或获取开源社区的 Dragonbone适配代码, 里面提供一个小游戏方案的事适配代码,然后进入Beefball文件夹 - npm run build 构建

# 脚本使用dragonbone

  1. 新建脚本文件,并引用构造出来的 dragonboneAdapter
// 根据DragonBone源码,改造渲染层实现,编译的产物
require("../dragonbone/dragonBones.js");
  1. 加载设置为入口资源的 dragonbone 资源文件。
const task6 = engine.loader.load("Assets/dragonbone/dragon/Dragon_ske.json");
task6.promise.then(file => {
  this.dbres['Assets/dragonbone/dragon/Dragon_ske.json'] = file;
});
  1. 获取 dragonBones 的 BeefballFactory,并使用 dragonBone 的函数进行构建。
const factory = dragonBones.BeefballFactory.factory;
/* normal */
factory.parseDragonBonesData(this.dbres['Assets/dragonbone/dragon/Dragon_ske.json'].value, "Dragon");
factory.parseTextureAtlasData(
  this.dbres['Assets/dragonbone/dragon/Dragon_tex.json'].value,
  this.dbres['Assets/dragonbone/dragon/Dragon_tex.png']
);
const armatureComponent2 = factory.buildArmatureComponent("Dragon", "Dragon");
armatureComponent2.animation.play("walk");
// 将构建出来的动画节点,添加到场上
wrapBone.addChild(armatureComponent2.entity.transform2D);