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 khifind_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ơn0xff000000kí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ơn0xff000000kí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 quascreen.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
0x456789và lệch0x123456, khoảng là:
Đỏ:0x45 ± 0x12, Xanh lá:0x67 ± 0x34, Xanh dương:0x89 ± 0x56.Sử dụng tiền tố
0xcho 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,
})