MatchResult:getRegion()
Возвращает сопоставленную область как объект Region.
Описание
Метод getRegion() возвращает объект Region, который представляет прямоугольную область, где было найдено совпадение. Эта область включает позицию (X, Y) верхнего левого угла и размеры (ширину, высоту) сопоставленной области.
Возвращённый Region можно использовать для:
- Выполнения дальнейшего поиска внутри сопоставленной области
- Захвата снимка экрана только сопоставленной области
- Определения под-области для других операций
- Построения подогнанной области поиска для ускорения повторяющегося сопоставления
Сигнатура
getRegion(): Region
Возвращаемое значение
Region — объект Region, представляющий прямоугольные границы сопоставленной области.
Пример
local result = Screen:find("container.png")
if result then
local region = result:getRegion()
toast("Region: X=" .. region:getX() .. ", Y=" .. region:getY())
toast("Size: " .. region:getWidth() .. "x" .. region:getHeight())
-- Search within the matched region for faster matching
local innerResult = region:find("container.png")
if innerResult then
toast("Found container.png inside region!")
end
end
Методика подгонки области (fit region)
getRegion() — ключевой метод, лежащий в основе важного шаблона оптимизации, часто называемого fit region (подгонка области).
Шаблон заключается в следующем:
- Найти стабильный объект на
Screen - Вызвать
getRegion()дляMatchResult - Повторно использовать эту область для повторяющегося поиска внутри одного и того же объекта
local panel = Screen:find("reward-panel.jpg")
if panel then
local fitRegion = panel:getRegion()
-- Search only inside the fitted panel instead of the full screen
local claim = fitRegion:find("claim-button.jpg")
if claim then
fitRegion:click("claim-button.jpg")
end
end
Эта техника работает лучше всего, когда сопоставляемый объект всегда имеет примерно одинаковый размер. Она может значительно сократить вычислительные затраты, так как вы избегаете повторения полнoэкранного поиска для каждого шага внутри одного и того же контейнера.