到底NB不NB自己看就知道了。当然素材得你自己准备,j就算分辨率机型都不一样,咱也照样找。
我先贴方法之后在解释参数:
/**
* 找图,找到并点击
* @param {可以是数组也可以是字符串,传输数组可以多次找图知道找到为止} img_path_array
* @param {找图区域,默认是全屏找图,该参数可以不传输} area_region
* @param {相似度,默认是0.8,可以不传输} threshold
* @returns true表示执行成功Flase表示失败
*/
function clickAreaForFindImage(img_path_array, area_region, threshold) {
try {
area_region = area_region || [0, 0, device.width, device.height] //默认的找图区域 全屏找图 前2位是坐标 后面是长度和宽度 千万别理解成是坐标
threshold = threshold || 0.8 // 默认的相识度0.8
if (img_path_array instanceof Array) {
let arrayLength = img_path_array.length
for (let i = 0; i < arrayLength; i++) {
toastLog("正在进行第" + (i + 1) + "次找图...")
img_path = img_path_array[i] //小图地址可判断是否存在
if (!files.exists(img_path)) {
toastLog(img_path + "文件不存在因此跳过")
continue
}
var little_image = images.read(img_path) //小图
var find_result_bounds = findImage(
captureScreen(), little_image, {
region: area_region,
threshold: threshold
});
toastLog(find_result_bounds)
if (find_result_bounds) {
toastLog("准备点击:" + find_result_bounds)
click(find_result_bounds.x, find_result_bounds.y)
return true
} else {
toastLog("小图存在但是在大图中未找到图片")
return false
}
}
}
if (typeof (img_path_array) == "string") {
img_path = img_path_array//小图地址可判断是否存在
if (!files.exists(img_path)) {
toastLog(img_path + "文件不存在因此跳过")
return false
}
var little_image = images.read(img_path) //小图
var find_result_bounds = findImage(
captureScreen(), little_image, {
region: area_region,
threshold: threshold
});
toastLog(find_result_bounds)
if (find_result_bounds) {
toastLog("准备点击:" + find_result_bounds)
click(find_result_bounds.x, find_result_bounds.y)
return true
} else {
toastLog("小图存在但是在大图中未找到图片")
return false
}
}
} catch (error) {
toastLog("clickAreaForFindImage方法出现错误:" + error)
return false;
}
}
封装了史上最NB的找图函数clickAreaForFindImage(img_path_array, area_region, threshold)
1 第一个参数可以是数组也可以是字符串,传输数组可以多次找图知道找到为止
2 第二个参数是找图区域,默认是全屏找图,该参数可以不传输
3 第三个参数是相识度,默认是0.8,可以不传输
直接判断是否成功完了就可以下一步操作了 示例代码
requestScreenCapture();
see_video_image = ["./FindImage/成语大家族/看视频抢红包1.png", "./FindImage/成语大家族/看视频抢红包2.png"]
//see_video_image = "./FindImage/成语大家族/看视频抢红包2.png"
area_region = [0, device.height / 2, device.width, device.height / 2]
if (clickAreaForFindImage(see_video_image, area_region)) {
//干点啥
}我提供了2个参数
第一个是小图地址的数组第二个是区域,第一个参数也可以是字符串的小图地址。
拿去用吧...
评论内容