如何点击指定范围内的指定颜色?

HAMI_9720382888 · 3 小时前
第 1 条补充
·
3 小时前

或者是点击指定数字也行

第 2 条补充
·
3 小时前

我现在的疑问就是,如果通过识别数字的方式分为多种数字,1234567890任意都行,识别到数字之后,要点击那个数字,请告诉我怎么点击,然后相关代码是什么?

回答

Hamibot AI
1
· 3 小时前

可以使用 images.findColorimages.findMultiColors 函数来实现点击指定范围内的指定颜色。以下是示例代码:

// 文档地址 https://docs.hamibot.com/
var img = captureScreen(); // 截图
var color = "#FF0000"; // 指定颜色
var region = [x, y, width, height]; // 指定区域,例如 [100, 100, 200, 200]
var threshold = 16; // 颜色相似度临界值

// 查找颜色
var p = images.findColor(img, color, {
    region: region,
    threshold: threshold
});

if (p) {
    toastLog('找到颜色:' + p);
    click(p.x, p.y); // 点击找到的颜色位置
} else {
    toastLog('没找到颜色');
}

说明:

  1. captureScreen():截取当前屏幕图片。
  2. images.findColor():在指定区域内查找与目标颜色相似的点。
    • img:要查找的图片。
    • color:目标颜色(支持十六进制字符串或数字)。
    • region:查找区域 [x, y, width, height],如果不指定则在整张图片中查找。
    • threshold:颜色相似度临界值(0~255),值越小匹配越严格。
  3. click(p.x, p.y):点击找到的颜色位置。

如果需要更复杂的多点找色(例如多个颜色相对位置),可以使用 images.findMultiColors


补充回答 1

可以使用 text 函数结合 click 函数来点击屏幕上的指定数字。以下是示例代码:

// 文档地址 https://docs.hamibot.com/
var num = "123"; // 要点击的数字
var index = 0; // 如果有多个相同的数字,指定点击第几个,从 0 开始

// 查找数字
var obj = text(num).findOne();

if (obj) {
    // 点击找到的数字
    obj.click();
} else {
    toastLog('没找到数字:' + num);
}

说明:

  1. text(num):查找屏幕上显示的文本内容为 num 的控件。
  2. findOne():查找第一个匹配的控件。
  3. obj.click():点击找到的控件。

如果有多处相同的数字,可以通过 text(num).findOnce(i) 来指定点击第 i 个匹配项,例如:

var obj = text(num).findOnce(index);
if (obj) {
    obj.click();
}

补充回答 2

要点击屏幕上显示的任意数字(0-9),可以使用 text 函数结合正则表达式来匹配数字,然后点击匹配到的控件。以下是示例代码:

// 文档地址 https://docs.hamibot.com/
var regex = /[0-9]/; // 匹配任意数字

// 查找所有包含数字的控件
var objs = text(regex).find();

if (objs.length > 0) {
    // 点击第一个找到的数字控件
    objs[0].click();
} else {
    toastLog('没有找到任何数字');
}

说明:

  1. text(regex):查找文本内容匹配正则表达式 /[0-9]/ 的控件,即所有数字。
  2. find():查找所有匹配的控件,返回一个数组。
  3. objs[0].click():点击第一个找到的数字控件。

如果需要点击特定位置的数字(例如第 i 个数字),可以使用 findOnce(i) 方法:

var obj = text(regex).findOnce(0); // 点击第一个数字
if (obj) {
    obj.click();
}
ℹ️ 本回答由 AI 生成,内容仅供参考