如何基于PyAutoGUI实现鼠标附近目标图像检测功能?
解决方案
要实现鼠标移动到玩家位置后扫描附近目标,你可以利用pyautogui的locate*系列函数的region参数,限定扫描范围为鼠标周围的指定区域。以下是修改后的完整代码:
import pyautogui # 定义扫描范围的偏移量(单位:像素),可根据需求调整 SCAN_OFFSET = 50 def detect_and_scan(): # 定位玩家并移动鼠标到其中心 player_center = pyautogui.locateCenterOnScreen('danger/player.png') if player_center: # 先判断是否找到玩家,避免报错 pyautogui.moveTo(player_center) # 获取当前鼠标位置,作为扫描区域的中心 mouse_x, mouse_y = pyautogui.position() # 定义鼠标周围的扫描区域:(左边界, 上边界, 宽度, 高度) scan_region = ( mouse_x - SCAN_OFFSET, mouse_y - SCAN_OFFSET, SCAN_OFFSET * 2, SCAN_OFFSET * 2 ) # 在指定区域内扫描目标图像,替换成你的目标图片路径 target_pos = pyautogui.locateCenterOnScreen('danger/target.png', region=scan_region) if target_pos: print(f"找到目标,位置:{target_pos}") # 可添加对目标的操作,比如点击 # pyautogui.click(target_pos) while True: detect_and_scan()
关键说明:
SCAN_OFFSET:控制扫描范围的大小,比如设为50表示以鼠标为中心,扫描100x100像素的正方形区域。region参数:传入四元组(left, top, width, height),限定pyautogui只在指定区域内查找图像,比全屏幕扫描更高效。- 增加非空判断:避免找不到玩家或目标时抛出
NoneType错误,提升代码稳定性。
内容的提问来源于stack exchange,提问作者user18213859
相关产品推荐
相关产品推荐

