多点相似度模式找色 (screen.find_color)

声明

横坐标, 纵坐标 = screen.find_color({
    [find_all = 是否搜索多个结果],
    [max_results = 最大结果数],
    [max_miss = 允许最多未命中数],
    {起始点横坐标, 起始点纵坐标, 起始点颜色[, 起始点相似度]},
    {偏移点横坐标*, 偏移点纵坐标*, 偏移点颜色*[, 偏移点相似度*]},
    {偏移点横坐标*, 偏移点纵坐标*, 偏移点颜色*[, 偏移点相似度*]},
    ...
} [, 全局相似度, 左, 上, 右, 下 ])

参数及返回值

  • 是否搜索多个结果
    • 布尔型,可选参数,这个标签设置为 true 会返回范围内所有匹配位置的一个表,格式为 {{x1, y1}, {x2, y2}, ...},默认 false
  • 最大结果数
    • 整数型,可选参数,当 find_all (是否搜索多个结果) 标签设置为 true 的时候,这个表示最多返回结果数,最多可以设为 1000,默认 100
  • 允许最多未命中数 *1.2-3 新增
    • 整数型,可选参数,可以允许最多的不匹配的点的数量,默认为 0,也就是全命中才算找到
  • 起始点横坐标, 起始点纵坐标
    • 整数型,代表起始坐标,它并不是限制找色的范围为固定这一点,而仅仅是给偏移位置一个相对坐标,不理解就填 0, 0
  • 起始点颜色
    • 整数型,代表需要搜索的那一点的颜色
  • 起始点相似度
    • 整数型,可选参数,需要搜索的那一点颜色的相似度,取值范围 1~100,默认 100
  • 偏移点横坐标*, 偏移点纵坐标*
    • 整数型,代表一个偏移位置坐标
  • 偏移点颜色*
    • 整数型,代表偏移位置需要匹配的颜色
  • 偏移点相似度*
    • 整数型,可选参数,偏移位置的颜色的相似度,取值范围 -100~100,默认 100,负相似度意味着匹配小于该绝对值的相似度
  • 全局相似度
    • 整数型,可选参数,如果没有给单个点设置相似度,那么每一点都会用这个相似度,取值范围 1~100,默认 100
  • 左, 上, 右, 下
    • 整数型,可选参数,代表搜索区域,默认 全屏
  • 横坐标, 纵坐标
    • 整数型,返回匹配色的第一个色的坐标,搜索失败返回 -1, -1

说明

使用相似度模式查找,获取区域中第一个完全匹配的多点颜色结构的位置

示例

x, y = screen.find_color({
    {  0,   0, 0xec1c23},
    { 12,  -3, 0xffffff, 85},
    {  5, -18, 0x00adee},
    { -1, -10, 0xffc823},
    {  2, -34, 0xa78217},
    { 12, -55, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
    在左上为 0, 0 右下为 100, 100 的区域找到第一点与 0xec1c23 相似度大于 90 
    且它的相对坐标 (12, -3) 的位置的颜色与 0xffffff 相似度大于 85
    且它的相对坐标 (5, -18) 的位置的颜色与 0x00adee 相似度大于 90 
    且…… (后面的同理) 都能匹配的那个点
--]]
--
-- 等效代码如下:
--
x, y = screen.find_color({
    { 509, 488, 0xec1c23},
    { 521, 485, 0xffffff, 85},
    { 514, 470, 0x00adee},
    { 508, 478, 0xffc823},
    { 511, 454, 0xa78217},
    { 521, 433, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
    在左上为 0, 0 右下为 100, 100 的区域找到第一点与 0xec1c23 相似度大于 90 
    且它的相对坐标 (521-509, 485-488) 的位置的颜色与 0xffffff 相似度大于 85 
    且它的相对坐标 (514-509, 470-488) 的位置的颜色与 0x00adee 相似度大于 90 
    且…… (后面的同理) 都能匹配的那个点
--]]
--
-- 不换行无缩进就是这个效果:
x, y = screen.find_color({ {0,0,0xec1c23},{12,-3,0xffffff,85},{5,-18,0x00adee},{-1,-10,0xffc823},{2,-34,0xa78217},{12,-55,0xd0d2d2},},90,0,0,100,100)
--
x, y = screen.find_color({ -- 反匹配演示,在 5C 主屏幕运行可获得结果
    { 516,  288, 0xffffff },
    { 519,  286, 0xffffff },
    { 521,  289, 0xffffff },
    { 516,  296, 0xffffff },
    { 522,  297, 0xffffff },
    { 520,  295, 0xffffff, -10 }, -- 这一点颜色与 0xffffff 相似度小于 10 才匹配,下同
    { 515,  291, 0xffffff, -10 },
    { 518,  284, 0xffffff, -10 },
    { 523,  298, 0xffffff, -10 },
    { 514,  298, 0xffffff, -10 },
    { 514,  296, 0xffffff, -10 },
}, 90) -- 不写区域参数表示全屏找
--
results = screen.find_color({ -- 范围匹配全输出演示
    {  527,  278, 0xde1d26 },
    {  524,  285, 0x007aff },
    {  555,  292, 0xe4ddc9 },
    {  536,  314, 0xffde02 },
    {  502,  291, 0xffde02 },
    {  502,  283, 0xe4ddc9 },
    find_all = true, -- 带这个标签将返回范围所有匹配的位置的一个表,格式为 { {x1, y1}, {x2, y2}, ...}
}, 90) -- 不写区域参数表示全屏找

results matching ""

    No results matching ""