函数:findColorInRegionFuzzy 区域单点找色
函数名称:区域单点找色、区域单点模糊找色、区域模糊找色
函数功能:在指定区域中,寻找符合指定颜色的坐标,支持模糊查找。
函数方法
x, y = findColorInRegionFuzzy(color,degree,x1,y1,x2,y2)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
color | number | 是 | 将要找的十六进制颜色值 |
degree | number | 是 | 寻找精度,范围:1 ~ 100,当是 100 时为完全匹配 |
x1 | number | 是 | 找色区域左上角顶点屏幕横坐标 |
y1 | number | 是 | 找色区域左上角顶点屏幕纵坐标 |
x2 | number | 是 | 找色区域右下角顶点屏幕横坐标 |
y2 | number | 是 | 找色区域右下角顶点屏幕纵坐标 |
返回值 | 类型 | 说明 |
---|---|---|
x,y | number | 找到的点坐标,如未找到则返回 -1,-1 |
函数用例
精确寻找指定区域中,指定颜色的坐标,并按下
--寻找符合条件的点
x, y = findColorInRegionFuzzy(0x112233, 100, 50, 50, 300, 300);
if x ~= -1 and y ~= -1 then --如果在指定区域找到某点符合条件
touchDown(x, y); --那么单击该点
mSleep(30);
touchUp(x, y);
else --如果找不到符合条件的点
dialog("未找到符合条件的坐标!",0);
end
模糊查找指定区域中,尽可能接近指定颜色的点,并按下
for deg = 100, 1, -1 do --使用 for 循环不断降低精确度
x, y = findColorInRegionFuzzy(0xffffff, deg, 50, 50, 300, 300);
if x ~= -1 and y ~= -1 then --如果在指定区域找到某点符合条件
nLog("在精度:"..deg.."下找到一个相似的颜色,坐标:"..x..":"..y)
touchDown(x, y); --那么单击该点
mSleep(30)
touchUp(x, y);
break; --并跳出循环
end
end
注意事项
未找到则返回 (-1, -1) ,所以找到时 x,y 均不等于 -1,~= 为不等于操作符,是 Lua 基本语法, 属于逻辑控制。
通过不断降低模糊查找精确度的方法在指定区域查找到的不一定是最接近指定颜色的点,该代码应用过程中,建议使用"保持屏幕"减少性能损耗,参见"保持屏幕"一章。
雷电 9 系统模拟器分辨率为平板版时使用函数:getScreenSize 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。