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())
-- 在匹配区域内搜索以加快匹配速度
local innerResult = region:find("container.png")
if innerResult then
toast("Found container.png inside region!")
end
end
适配区域(Fit Region)技巧
getRegion() 是一种通常被称为 fit region(适配区域)的重要优化模式背后的关键方法。
该模式的步骤为:
- 在
Screen上查找一个稳定的对象 - 对
MatchResult调用getRegion() - 复用该区域,在同一对象内进行重复搜索
local panel = Screen:find("reward-panel.jpg")
if panel then
local fitRegion = panel:getRegion()
-- 仅在适配的面板内搜索,而不是全屏搜索
local claim = fitRegion:find("claim-button.jpg")
if claim then
fitRegion:click("claim-button.jpg")
end
end
当匹配对象的大小始终大致相同时,此技巧的效果最佳。它可以显著降低处理开销,因为您避免了在同一容器内的每一步都重复进行全屏搜索。