본문으로 건너뛰기

화면의 여러 지점 색상 일치 확인 (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를 사용했습니다.