函数:findMultiColorInRegionFuzzyExt 高级多点区域找色
函数名称:高级多点找色,高级区域多点找色
函数功能:在指定区域,根据基准点的颜色以及其周边参照点的颜色,寻找所有符合条件的点的坐标,支持模糊查找。
函数方法
point = findMultiColorInRegionFuzzyExt(color,posandcolors,degree,x1,y1,x2,y2,tab);
必填
参数 | 类型 | 说明 |
---|---|---|
color | number | 基准点颜色 |
posandcolors | string | 周边参照点颜色参数 |
degree | number | 寻找精度,范围:1 ~ 100,当是 100 时为完全匹配 |
x1 | number | 找色区域左上角顶点屏幕横坐标 |
y1 | number | 找色区域左上角顶点屏幕纵坐标 |
x2 | number | 找色区域右下角顶点屏幕横坐标 |
y2 | number | 找色区域右下角顶点屏幕纵坐标 |
选填
参数 | 类型 | 说明 |
---|---|---|
tab | table | 高阶用法,详细用法详见 区域多点找色基础和高阶用法 |
高阶用法选填
参数 | 类型 | 说明 | |
---|---|---|---|
orient | number | 0 - 8,代表找色方向,详见注意事项,支持版本详见注意事项 | |
main | number | 基准点的偏色 例如 main = 0x101010(十六进制) |
|
list | number | 周边参照点的偏色, 例如 list = 0x202020(十六进制) |
|
count | number | 设置查找结果数量,默认返回所有符合条件的目标点的坐标, |
返回值
返回值 | 类型 | 说明 |
---|---|---|
point | table | 以 table 形式返回所有符合条件点的坐标(第一个点为基准点,其余点为参照点),如未找到则返回的 table 为空 |
返回的 table 为以下形式:
table = {
{x = 100,y = 110},
{x = 200,y = 210},
{x = 300,y = 310},
...
}
扩展阅读:区域多点找色基础和高阶用法
函数用例
基础用法
point = findMultiColorInRegionFuzzyExt( 0xcf0000, "-37|3|0x942814,-38|20|0xeba62d,1|54|0xf2b054,28|22|0x8a5707", 90, 97, 220, 903, 701)
if #point ~= 0 then --如返回的table不为空(至少找到一个符合条件的点)
for var = 1,#point do
nLog(point[var].x..","..point[var].y)
mSleep(30)
end
end
偏色用法
--main 为基准点 0xffffff 的偏色,list 为周边参照点的偏色,如果想对每一个参照点单独偏色,在每一个偏色后面加上偏色值即可,如 "0|0|0x1ac819|0x202020"
point = findMultiColorInRegionFuzzyExt(0xffffff,"0|0|0x1ac819,-4|-208|0x18cb76,3|58|0x21cc79", 90,0,0,100,100,{main = 0x101010,list = 0x202020})
if #point ~= 0 then --如返回的table不为空(至少找到一个符合条件的点)
for var = 1,#point do
nLog(point[var].x..","..point[var].y)
mSleep(30)
end
end
多点方向用法
x,y = findMultiColorInRegionFuzzyExt( 0x000000, "0|0|0x000000", 95, 0, 0, 100, 100, { orient = 1,["count"] = 3 })
注意事项
- posandcolor 参数中的坐标为相对坐标。
- 相对于基准点的坐标,即用参照点的横坐标、纵坐标分别减去基准点的横坐标、纵坐标,可以为负数。
- 多点找色的代码可直接用触动精灵取色工具生成,其使用方法参见图文教程。
- 颜色值的十六进制文本中,其顺序为 RGB。
- 使用此函数时精度参数设置过低,会导致性能大幅下降。