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

如何编写函数实现按按键直至目标PNG对象到达指定屏幕位置?

自动按键控制对象移动到指定位置的Python实现

所需工具

先安装依赖库:

pip install pyautogui

核心思路

  1. 用图像识别定位屏幕上的黄色对象中心坐标
  2. 持续按住对应方向键,每隔短时间检查对象位置,直到进入目标点误差范围后松开按键
  3. 按预设路径依次移动,完成一轮循环

完整代码

import pyautogui
import time

# 开启安全机制:鼠标移到屏幕左上角时自动终止脚本
pyautogui.FAILSAFE = True

def get_object_center(object_png):
    # 循环查找黄色对象,直到找到其中心坐标
    while True:
        # confidence参数控制识别精度,0-1之间,值越高越严格
        center = pyautogui.locateCenterOnScreen(object_png, confidence=0.8)
        if center:
            return (center.x, center.y)
        # 没找到就等待0.1秒后重试
        time.sleep(0.1)

def move_to_target(object_png, target_pos, key):
    # 获取对象当前位置
    current_x, current_y = get_object_center(object_png)
    # 设置位置误差范围(±5像素),避免因像素精度问题无法触发停止
    tolerance = 5
    
    # 未到达目标区域时持续按键
    while not (abs(current_x - target_pos[0]) <= tolerance and abs(current_y - target_pos[1]) <= tolerance):
        pyautogui.keyDown(key)
        # 0.1秒后重新检查位置,平衡响应速度和资源占用
        time.sleep(0.1)
        current_x, current_y = get_object_center(object_png)
    
    # 到达目标后松开按键,短暂停留确保对象稳定
    pyautogui.keyUp(key)
    time.sleep(0.5)

if __name__ == "__main__":
    # 替换为你的黄色对象PNG截图路径(建议只截对象本身,减少干扰)
    YELLOW_OBJECT_PNG = "yellow_object.png"
    
    # 按顺序定义所有路径点坐标,替换成实际蓝点位置
    path_points = [
        (800, 600),   # n0 起点/终点
        (423, 600),   # n1
        (950, 600),   # n2 示例坐标,请自行修改
        (950, 300),   # n3 示例坐标,请自行修改
        (423, 300),   # n4 示例坐标,请自行修改
        (423, 600),   # n5
        (800, 600)    # 返回n0
    ]
    
    # 对应每个路径段要按的方向键,顺序必须和path_points匹配
    # 方向键参数:左"left"、右"right"、上"up"、下"down"
    move_keys = ["left", "right", "up", "left", "down", "right"]
    
    # 执行一轮完整路径移动
    for idx in range(len(path_points) - 1):
        target = path_points[idx + 1]
        key = move_keys[idx]
        print(f"正在移动到目标点 {idx+1}...")
        move_to_target(YELLOW_OBJECT_PNG, target, key)
    
    print("一轮移动循环完成!")

使用说明

  1. 准备截图:用截图工具截取黄色对象的清晰PNG图片,保存后替换代码中的YELLOW_OBJECT_PNG路径。
  2. 修改坐标:把path_points里的示例坐标替换成实际蓝点的坐标值。
  3. 匹配方向键:确保move_keys里的方向键顺序和路径段的移动方向完全对应。
  4. 运行脚本:打开目标应用并置于前台,运行脚本即可自动执行移动。
  5. 终止脚本:按Ctrl+C,或者将鼠标移到屏幕左上角触发安全终止。

内容的提问来源于stack exchange,提问作者Mateusz Pysiek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:15:38