Pular para o conteúdo principal

Correspondência de cores em vários pontos da tela (screen.is_colors)

Declaração

há_correspondência = screen.is_colors({
[max_miss = máximo_de_pontos_sem_correspondência,]
[xy_tolerance = tolerância_de_coordenadas,]
[csim_algorithm = algoritmo_de_similaridade_de_cor,]
{coordenada_x*, coordenada_y*, cor*},
{coordenada_x*, coordenada_y*, cor*},
...
}[, similaridade_de_cor])

Parâmetros

  • máximo de pontos sem correspondência
    Inteiro opcional; quantidade máxima de pontos sem correspondência permitida. O padrão é 0, ou seja, todos os pontos devem corresponder para haver correspondência.

  • tolerância de coordenadas (compatível a partir da versão 20250228)
    Inteiro opcional; deslocamento de coordenadas permitido. Pontos além desse valor serão considerados sem correspondência. O padrão é 0 (as coordenadas devem corresponder exatamente).

  • algoritmo de similaridade de cor (compatível a partir da versão 20250302)
    Inteiro opcional que especifica o algoritmo de similaridade de cor; o padrão é 0.

    Algoritmo de similaridade de cor
    0 é o algoritmo padrão do XXT; o gradiente é acentuado e a diferença reduz rapidamente a similaridade
    1 é o algoritmo de Manhattan; o gradiente é suave
    2 é o algoritmo euclidiano; o gradiente é suave
  • coordenada_x*, coordenada_y*
    Inteiros que representam as coordenadas de um ponto.

  • cor*
    Inteiro que representa o valor da cor a ser correspondida nesse ponto.

  • similaridade de cor
    Inteiro opcional que representa a similaridade de cor necessária, no intervalo de 1 a 100; o padrão é 100.

Valor retornado

  • há correspondência
    Booleano; retorna true quando as cores de todos os pontos correspondem e false caso contrário.

Observações

Compara as cores de vários pontos da tela.
As coordenadas usadas por esta função são afetadas pelo sistema inicializado por screen.init.

Exemplo

if screen.is_colors({
{ 509, 488, 0xec1c23}, -- se a cor da coordenada (509, 488) tiver mais de 90% de similaridade com 0xec1c23
{ 514, 470, 0x00adee}, -- ao mesmo tempo, se a cor da coordenada (514, 470) tiver mais de 90% de similaridade com 0x00adee
{ 508, 478, 0xffc823}, -- ao mesmo tempo, se a cor da coordenada (508, 478) tiver mais de 90% de similaridade com 0xffc823
{ 511, 454, 0xa78217}, -- ao mesmo tempo, se a cor da coordenada (511, 454) tiver mais de 90% de similaridade com 0xa78217
{ 521, 433, 0xd0d2d2}, -- ao mesmo tempo, se a cor da coordenada (521, 433) tiver mais de 90% de similaridade com 0xd0d2d2
}, 90) then -- há correspondência
sys.alert("匹配!")
else
sys.alert("不匹配!")
end

Observação: o código acima usa a função sys.alert, que não pertence a este capítulo.