手机图片地址在/storage/emulated/0/装备图片/戒子.png,怎么写代码,找屏幕图片然后点击

mvexl9leec · 1 天前

回答

Hamibot AI
1
· 1 天前

以下是实现查找屏幕图片并点击的完整代码示例。代码已适配 Hamibot 的 JavaScript 运行环境(Rhino 1.7.15),并包含了必要的权限申请和错误处理。

// 文档地址 https://docs.hamibot.com/
auto.waitFor();

// 申请屏幕截图权限
if (!requestScreenCapture()) {
    toastLog('没有授予 Hamibot 屏幕截图权限');
    hamibot.exit();
}

// 等待权限生效
sleep(1000);

// 读取本地模板图片
var imagePath = '/storage/emulated/0/装备图片/戒子.png';
var templ = images.read(imagePath);

// 判断图片是否加载成功
if (!templ) {
    toastLog('图片加载失败,请检查路径是否正确:' + imagePath);
    hamibot.exit();
}

// 截取当前屏幕
var img = captureScreen();

// 在屏幕图片中查找模板图片
// threshold 为相似度,默认 0.9,如果找不到可以适当调低,例如 0.8
var p = images.findImage(img, templ, {
    threshold: 0.9
});

if (p) {
    toastLog('找到图片,坐标:' + p.x + ', ' + p.y);
    // 点击找到的位置
    click(p.x, p.y);
} else {
    toastLog('未在屏幕上找到图片');
}

// 释放资源并结束脚本
templ.recycle();
img.recycle();
hamibot.exit();

代码说明与注意事项

  1. 权限申请requestScreenCapture() 用于请求屏幕截图权限,首次运行脚本时手机会弹出授权提示,必须允许才能继续。
  2. 图片路径:代码中使用了你提供的路径 /storage/emulated/0/装备图片/戒子.png。请确保手机该路径下确实存在该文件,且文件名完全一致(包括扩展名)。注意“戒子”是否为“戒指”的笔误,请核对实际文件名。
  3. 相似度阈值images.findImagethreshold 参数控制匹配相似度,范围 0 到 1。默认 0.9 较高,如果游戏或应用界面有轻微变色或压缩,可尝试降低至 0.8。
  4. 资源释放:使用 recycle() 方法释放图片占用内存,避免长时间运行脚本导致内存溢出。
  5. 兼容性:代码使用 var 定义变量,未使用箭头函数,符合 Hamibot 底层 JavaScript 引擎规范。

如果脚本运行后提示图片加载失败,请检查文件管理器确认路径和文件名是否正确。如果提示找不到图片,可以尝试调整 threshold 参数或重新截取更清晰的模板图。

ℹ️ 本回答由 AI 生成,内容仅供参考