Chuyển tới nội dung chính

Tìm màu - Chế độ độ lệch màu (screen.find_color)

Khai báo

x, y = screen.find_color({
[find_all = boolean,]
[max_results = integer_value,]
[max_miss = integer_value,]
{x0, y0, {color0[, offset0]}},
{dx*, dy*, {color*[, offset*]}},
{dx*, dy*, {color*[, offset*]}},
...
}[, left, top, right, bottom ])

Tham số

  • find_all
    Boolean, tùy chọn. Khi đúng, trả về một bảng chứa tất cả các vị trí khớp trong khu vực, định dạng {{x1, y1}, {x2, y2}, ...}. Mặc định là sai.
  • max_results
    Integer, tùy chọn. Số lượng kết quả tối đa khi find_all đúng. Tối đa 1000, mặc định 100.
  • max_miss
    Integer, tùy chọn. Số lượng điểm không khớp cho phép tối đa. Mặc định 0 (tất cả các điểm phải khớp).
  • x0, y0
    Integer. Tọa độ điểm bắt đầu. Đây là điểm tham chiếu để tính toán vị trí lệch, không phải giới hạn tìm kiếm. Nếu không chắc, sử dụng 0, 0.
  • color0
    Integer. Màu cần khớp tại điểm bắt đầu.
  • offset0
    Integer. Biên độ màu tối đa (hoặc lệch). Giá trị lớn hơn 0xff000000 kích hoạt khớp ngược (khớp với màu không khớp với giá trị đã chỉ định).
  • dx*, dy*
    Integer. Tọa độ lệch so với điểm bắt đầu.
  • color*
    Integer. Màu mong đợi tại điểm lệch.
  • offset*
    Integer. Biên độ màu tối đa (hoặc lệch) tại điểm lệch. Giá trị lớn hơn 0xff000000 kích hoạt khớp ngược.
  • left, top, right, bottom
    Integer, tùy chọn. Khu vực tìm kiếm. Mặc định là toàn màn hình.

Giá trị trả về

  • x, y
    Integer. Tọa độ của cấu trúc nhiều điểm khớp đầu tiên. Trả về -1, -1 khi thất bại.

Mô tả

Tìm vị trí của cấu trúc nhiều điểm màu khớp hoàn toàn bằng chế độ độ lệch màu.
Các tham số tọa độ và giá trị trả về tuân theo hệ tọa độ được khởi tạo qua screen.init.

Độ lệch màu (sai màu) đại diện cho khoảng màu chấp nhận được. Với màu 0x456789 và lệch 0x123456, khoảng là:
Đỏ: 0x45 ± 0x12, Xanh lá: 0x67 ± 0x34, Xanh dương: 0x89 ± 0x56.

Sử dụng tiền tố 0x cho các số thập lục phân.

Ví dụ

x, y = screen.find_color({
{ 0, 0, {0xec1c23, 0x000000}},
{ 12, -3, {0xffffff, 0x101010}},
{ 5, -18, {0x00adee, 0x123456}},
{ -1, -10, {0xffc823, 0x101001}},
{ 2, -34, {0xa78217, 0x101001}},
{ 12, -55, {0xd0d2d2, 0x101001}},
}, 0, 0, 100, 100)
--
-- Dạng tương đương với tọa độ tuyệt đối:
--
x, y = screen.find_color({
{ 509, 488, {0xec1c23, 0x000000}},
{ 521, 485, {0xffffff, 0x101010}},
{ 514, 470, {0x00adee, 0x123456}},
{ 508, 478, {0xffc823, 0x101001}},
{ 511, 454, {0xa78217, 0x101001}},
{ 521, 433, {0xd0d2d2, 0x101001}},
}, 0, 0, 100, 100)
--
-- Dạng gọn một dòng:
--
x, y = screen.find_color({ {0,0,{0xec1c23,0x000000} },{12,-3, {0xffffff,0x101010} },{5,-18, {0x00adee,0x123456} },{-1,-10,{0xffc823,0x101001} },{2,-34,{0xa78217,0x101001} },{12,-55,{0xd0d2d2,0x101001} }, },0,0,100,100)
--
-- Demo khớp ngược (chạy trên màn hình trang chủ iPhone 5C để xem kết quả):
x, y = screen.find_color({
{ 516, 288, {0xffffff, 0x101010} },
{ 519, 286, {0xffffff, 0x101010} },
{ 521, 289, {0xffffff, 0x101010} },
{ 516, 296, {0xffffff, 0x101010} },
{ 522, 297, {0xffffff, 0x101010} },
{ 520, 295, {0xffffff, 0xff101010} },
{ 515, 291, {0xffffff, 0xff101010} },
{ 518, 284, {0xffffff, 0xff101010} },
{ 523, 298, {0xffffff, 0xff101010} },
{ 514, 298, {0xffffff, 0xff101010} },
{ 514, 296, {0xffffff, 0xff101010} },
})
--
-- Demo tìm toàn bộ (trả về tất cả các vị trí):
results = screen.find_color({
{ 527, 278, {0xde1d26, 0x101010} },
{ 524, 285, {0x007aff, 0x101010} },
{ 555, 292, {0xe4ddc9, 0x101010} },
{ 536, 314, {0xffde02, 0x101010} },
{ 502, 291, {0xffde02, 0x101010} },
{ 502, 283, {0xe4ddc9, 0x101010} },
find_all = true,
})