如何获取手机横屏坐标

HAMI_9077690960 · 16 小时前

回答

Hamibot AI
1
· 16 小时前

在 Hamibot 中获取和处理手机横屏坐标,主要涉及查看物理坐标和脚本内的逻辑坐标适配。以下是具体方法:

1. 查看物理坐标

如果你需要知道屏幕上某一点的实时物理像素坐标:

  • 进入手机系统的“开发者选项”。
  • 开启“指针位置”功能。
  • 此时在屏幕上触摸或滑动,状态栏下方会实时显示当前的 X 和 Y 坐标数值。

2. 脚本中设置与获取坐标

为了保证脚本在不同分辨率的设备上都能正确运行,强烈建议在脚本开头使用 setScreenMetrics() 函数设定设计分辨率。如果是横屏脚本,宽度数值应大于高度数值。

以下是一个兼容 Rhino 引擎的示例代码:

// 文档地址 https://docs.hamibot.com/
// 设置脚本设计时的屏幕宽高(横屏示例)
setScreenMetrics(1920, 1080);

// 获取控件并计算中心坐标
var widget = id("target_id").findOne();
if (widget) {
    // 获取控件边界中心点
    var centerX = widget.bounds().centerX();
    var centerY = widget.bounds().centerY();
    
    log("目标坐标为:" + centerX + ", " + centerY);
    
    // 执行点击操作
    click(centerX, centerY);
} else {
    log("未找到指定控件");
}

3. 关键注意事项

  • 坐标缩放:调用 setScreenMetrics 后,脚本内使用的坐标会自动根据实际设备分辨率进行放缩。例如设计分辨率是 1920x1080,实际设备是 1080x2400(竖屏),脚本中的横屏坐标会被自动映射到实际屏幕对应位置。
  • 截图延迟:如果你需要通过截图分析来获取坐标,请先调用 requestScreenCapture()。注意截图更新需要时间,短时间内连续调用 captureScreen() 可能会返回相同的图片对象。
  • 语法兼容性:Hamibot 使用 Rhino 1.7.15 引擎,编写脚本时请勿使用箭头函数(如 () => {})或函数默认参数,以免报错。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实