函数:findMultiColor 多点区域找色

函数功能:在指定区域,根据颜色以及其周边点的颜色,寻找所有符合条件的点的坐标,支持模糊查找

TSLib 版本:仅支持 v1.3.1 及其以上版本

函数方法

findMultiColor(color,posandcolor,degree,x1,y1,x2,y2,table)

参数 类型 必填 说明
color number 欲寻找的参照点颜色
posandcolor string 周边点颜色参数
degree number 寻找精度,范围:1 ~ 100,当是 100 时为完全匹配
x1 number 找色区域左上角顶点屏幕横坐标
y1 number 找色区域左上角顶点屏幕纵坐标
x2 number 找色区域右下角顶点屏幕横坐标
y2 number 找色区域右下角顶点屏幕纵坐标
table table 高阶用法,详细用法详见 findMultiColorInRegionFuzzy 函数

高阶用法

参数 类型 必填 说明
orient number 0 - 8,代表找色方向,详见注意事项,支持版本详见注意事项
main number 参照点的偏色,支持引擎版本 iOS v2.4.1,Andriod v2.3.5.4 以上版本
例如 main = 0x101010(十六进制)
list number 周边点的偏色,支持引擎版本 iOS v2.4.1,Andriod v2.3.5.4 以上版本
例如 list = 0x202020(十六进制)
count number 设置查找结果数量,默认返回所有符合条件的参照点的坐标
仅支持引擎版本 iOS v3.0.7,Android v3.1.3 及其以上版本
miss number 单位:像素,过滤返回值中在此参数范围内的坐标
返回值 类型 说明
point table 以 table 形式返回所有符合条件的参照点的坐标,如未找到则返回的 table 为空

返回的 table 为以下形式

table = {
    {x = 100,y = 110},
    {x = 200,y = 210},
    {x = 300,y = 310},
    ...
}

函数用例

require "TSLib"
--参数 miss 仅支持 TSLib v1.3.1 以及以上版本
point = findMultiColor(0x969696,"6|1|0x969696,1|12|0x969696,-4|0|0x969696",90,683,236,732,663,{miss = 3})
if #point ~= 0 then  --如返回的table不为空(至少找到一个符合条件的点)
    for var = 1,#point do
        nLog(point[var].x..":"..point[var].y)
    end
end

注意事项

  1. posandcolor 参数中的坐标为相对坐标。
  2. 多点找色的代码可直接用触动精灵取色工具生成。
  3. 颜色值的十六进制文本中,其顺序为 RGB。
  4. 相对于第一个点的坐标,即用这个点的横坐标、纵坐标分别减去第一个点的横坐标、纵坐标,可以为负数。
  5. 使用此函数时精度参数设置过低,会导致性能大幅下降。
  6. 引擎版本 iOS v2.4.5-9,v3.0.0-118 以上版本,如果 orient = 1 - 8 按方向进行查找,只要目标点在查找范围内,不需要基准点须在查找范围之内。
  7. 引擎版本 Andriod v2.3.5.4 以上版本,如果 orient = 0 - 8 按方向进行查找。
Copyright 北京帮你玩科技有限公司 2020 all right reserved,powered by Gitbook该文章修订时间: 2020-06-23 16:03:58

results matching ""

    No results matching ""