跳至主要內容

螢幕多點顏色匹配 (screen.is_colors)

聲明

是否匹配 = screen.is_colors({
[max_miss = 允許最大未命中數,]
[xy_tolerance = 座標容差,]
[csim_algorithm = 顏色相似度演算法,]
{橫座標*, 縱座標*, 顏色*},
{橫座標*, 縱座標*, 顏色*},
...
}[, 顏色相似度])

參數

  • 允許最大未命中數
    整數型,可選參數,可以允許最多的不匹配的點的數量,預設為 0,也就是全命中才算匹配

  • 座標容差(自 20250228 版本起支援)
    整數型,可選參數,允許的座標偏移量,超出該值的點將被視為未命中,預設為 0(座標必須完全匹配)

  • 顏色相似度演算法(自 20250302 版本起支援)
    整數型,可選參數,指定顏色相似度演算法,預設 0

    顏色相似度演算法
    0 為 XXT 預設演算法,梯度陡峭,差值使相似度下降很快
    1 為曼哈頓演算法,梯度平滑
    2 為歐幾里得演算法,梯度平滑
  • 橫座標*, 縱座標*
    整數型,代表其中某點座標

  • 顏色*
    整數型,代表其中某點需要匹配的顏色值

  • 顏色相似度
    整數型,可選參數,代表需要的顏色的相似度,取值範圍 1~100,預設 100

回傳值

  • 是否匹配
    布林型,所有點的顏色都匹配則返回 true,否則返回 false

說明

匹配螢幕上若干點的顏色
目前函式座標值參數受 screen.init 函式初始化的座標系影響

範例

if screen.is_colors({
{ 509, 488, 0xec1c23}, -- 如果坐標 (509, 488) 的顏色與 0xec1c23 相似度在 90% 以上
{ 514, 470, 0x00adee}, -- 同時坐標 (514, 470) 的顏色與 0x00adee 相似度在 90% 以上
{ 508, 478, 0xffc823}, -- 同時坐標 (508, 478) 的顏色與 0xffc823 相似度在 90% 以上
{ 511, 454, 0xa78217}, -- 同時坐標 (511, 454) 的顏色與 0xa78217 相似度在 90% 以上
{ 521, 433, 0xd0d2d2}, -- 同時坐標 (521, 433) 的顏色與 0xd0d2d2 相似度在 90% 以上
}, 90) then -- 則匹配
sys.alert("匹配!")
else
sys.alert("不匹配!")
end

:上述代碼中使用了非本章函式 sys.alert