You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:55:25