如何点击指定范围内的指定颜色?
第 1 条补充
· 6 小时前
或者是点击指定数字也行
第 2 条补充
· 6 小时前
我现在的疑问就是,如果通过识别数字的方式分为多种数字,1234567890任意都行,识别到数字之后,要点击那个数字,请告诉我怎么点击,然后相关代码是什么?
回答
可以使用 images.findColor 或 images.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('没找到颜色');
}
说明:
captureScreen():截取当前屏幕图片。images.findColor():在指定区域内查找与目标颜色相似的点。img:要查找的图片。color:目标颜色(支持十六进制字符串或数字)。region:查找区域[x, y, width, height],如果不指定则在整张图片中查找。threshold:颜色相似度临界值(0~255),值越小匹配越严格。
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);
}
说明:
text(num):查找屏幕上显示的文本内容为num的控件。findOne():查找第一个匹配的控件。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('没有找到任何数字');
}
说明:
text(regex):查找文本内容匹配正则表达式/[0-9]/的控件,即所有数字。find():查找所有匹配的控件,返回一个数组。objs[0].click():点击第一个找到的数字控件。
如果需要点击特定位置的数字(例如第 i 个数字),可以使用 findOnce(i) 方法:
var obj = text(regex).findOnce(0); // 点击第一个数字
if (obj) {
obj.click();
}
ℹ️ 本回答由 AI 生成,内容仅供参考