/images/Eevee.png

文章内容若有侵权,请联系删除🌹

DragonBones 使用笔记

参考资料

工具与基础概念

DragonBones 组件体系

  • DragonBones Pro:专业动画编辑器
  • DragonBones:标准数据格式
  • DragonBones Runtime:跨平台运行时库

PSD 素材导入流程

  1. 通过【帮助】→【PSD 导出插件安装指引】获取插件
  2. 在 Photoshop 中加载 DragonBones 脚本
  3. 制作完成后通过插件导出 PSD 为 DragonBones 可识别格式

骨骼系统核心机制

骨架层级结构

  • 图片 → 绑定于 → 插槽 → 绑定于 → 骨骼
  • 骨骼与图片必须通过插槽间接关联
  • 单插槽可包含多张图片,但同一时间仅显示一张

骨骼创建与操作

  • 首根骨骼默认以 root 为父级
  • 后续骨骼默认以上一骨骼为父级
  • 父子骨骼间默认继承变换属性(旋转、缩放、位移)

root 作为动画根节点,控制整个场景

代码小整理3

📱 Android UI 自动化 (uiautomator2)

电脑和手机需要在同一局域网环境下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# coding: utf-8
import uiautomator2 as u2
import os

# 连接设备
def connect_device():
    """通过adb连接设备"""
    tmp = os.popen('adb devices')
    serial_number = tmp.readlines()[1].split()[0]
    return u2.connect(serial_number)

# 初始化设备连接
d = connect_device()

# 返回主页
d.press('home')
d.sleep(0.1)
d.press('home')
d.sleep(1)

# 获取屏幕尺寸并滑动
x, y = d.window_size()
x1 = x * 0.9
y1 = y * 0.5
x2 = x * 0.1
d.swipe(x1, y1, x2, y1)
d.sleep(1)

# 点击文件夹
try:
    d.xpath('//*[@content-desc="文件夹:amuse"]/android.widget.ImageView[1]').click()
except:
    d.xpath('//*[@content-desc="amuse 小文件夹"]/android.widget.ImageView[1]').click()

# 点击应用
d(text='命运-冠位指定').click()
d.sleep(1)
d.click(0.37, 0.776)

# 停止应用
d.app_stop("com.bilibili.fgo.uc")
d.uiautomator.stop()

游戏自动化 adb

1
2
3
4
5
adb shell input keyevent 3   # home键
adb shell input keyevent 4   # 返回键
adb shell input tap x y      # 触击屏幕第x行,第y列的点
adb shell getprop ro.product.model # 获取手机型号
adb shell wm size            # 获取屏幕分辨率

pip3 install weditor==0.6.3