云计算百科
云计算领域专业知识百科平台

开发Agent自动玩手机游戏,附代码

现在用AI Agent自动玩手机游戏都成标配了,不用再熬夜肝等级、手忙脚乱躲技能,敲几行代码就能让Agent替你玩,从简单的跳一跳到王者荣耀人机对战,通通拿捏!而且用的都是2026年最新的Agent框架和技术,新手也能跟着做,文末还附完整可运行代码,快码住!

先跟大家唠唠核心逻辑,其实开发游戏Agent一点都不复杂,说白了就是让程序拥有“眼睛”和“手”:眼睛是视觉识别模型,能看懂游戏画面里的英雄、怪、按钮在哪;手是ADB/Open-AutoGLM这些工具,能模拟手机的点击、滑动、按压操作;再给它加个“大脑”——Agent决策逻辑,让它根据画面判断该干嘛,比如看到野怪就攻击、看到血条低就回城,一套流程下来,完美复刻人类玩游戏的操作~

这里重点推荐2026年刚更的Open-AutoGLM开源框架,这可是目前手机端Agent的天花板👍,支持Android、鸿蒙甚至iOS,不用ROOT手机,纯视觉识别界面,就算游戏更新UI也不用大改代码,容错率超高!比传统的ADB脚本香太多,而且还能结合Transformer做动作决策,玩MOBA类游戏都不在话下。

话不多说,咱们直接上手做一个自动玩微信跳一跳的Agent,新手友好,环境配置简单,跟着步骤来,10分钟就能跑通!

一、准备工作(敲黑板!这些一定要弄好)

1. 硬件&手机设置

  • 一台安卓手机(鸿蒙也可以),开启开发者模式+USB调试(设置里搜版本号连续点7下就开了,超简单)
  • 电脑和手机用数据线连好,或者用WiFi无线连接(Open-AutoGLM支持,超方便)

2. 软件环境

  • Python 3.10+(别用太老的版本,容易报错)
  • 安装核心库:直接在命令行敲这行,一键安装👇

pip install opencv-python numpy pyminitouch adbutils open-auto-glm # 最后一个是最新的Agent框架

  • 安装ADB驱动(网上搜自己手机型号的ADB驱动,无脑下一步安装就行)

二、核心原理拆解

咱们的跳一跳Agent分3步工作,循环执行就完事了,超简单:

  • 截图:用ADB获取手机当前游戏画面,传到电脑上;
  • 识别:用OpenCV做图像识别,找到棋子的位置和下一个方块的中心点;
  • 操作:计算棋子到方块的距离,换算成手机按压时间,再用ADB模拟按压屏幕,完成跳跃~
  • 全程不用复杂的深度学习模型,纯传统视觉+简单决策,新手也能理解,学会这个再进阶到王者荣耀Agent就轻松多了~

    三、完整可运行代码(直接复制就能用)

    这个代码是基于Open-AutoGLM轻量版做的,适配绝大多数安卓手机,分辨率不同的话,只需要改一个参数就行,注释写得超详细,看不懂的地方评论区问我~

    # 导入核心库
    import cv2
    import numpy as np
    import adbutils
    import time
    from open_auto_glm import PhoneAgent # 2026最新手机Agent框架

    # 初始化手机Agent,自动连接已配对的安卓手机
    agent = PhoneAgent(device_type="android", adb_path="adb") # adb_path填自己的ADB路径,默认不用改

    # 跳一跳核心参数:不同手机改这个就行,我的是1080P屏,系数1.35
    PRESS_COEFFICIENT = 1.35

    def get_screenshot():
    """获取手机截图并转成OpenCV格式"""
    screenshot = agent.screenshot() # Agent自带的截图功能,比原生ADB快
    img = cv2.imdecode(np.frombuffer(screenshot, np.uint8), cv2.IMREAD_COLOR)
    return img

    def find_chess_and_board(img):
    """识别棋子和目标方块的中心点"""
    # 转灰度图,方便识别
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 识别棋子:跳一跳棋子颜色固定,用阈值分割找轮廓
    ret, thresh = cv2.threshold(gray, 180, 255, cv2.THRESH_BINARY_INV)
    contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    # 找到棋子的轮廓(面积最大的那个)
    chess_contour = max(contours, key=cv2.contourArea)
    chess_mom = cv2.moments(chess_contour)
    chess_x = int(chess_mom['m10'] / chess_mom['m00'])
    chess_y = int(chess_mom['m01'] / chess_mom['m00']) # 棋子中心点

    # 识别目标方块:找画面上方的亮色区域,排除棋子
    board_gray = gray[0:chess_y50, :] # 只看棋子上方的区域
    ret, board_thresh = cv2.threshold(board_gray, 200, 255, cv2.THRESH_BINARY)
    board_contours, _ = cv2.findContours(board_thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    # 找到最大的方块轮廓
    board_contour = max(board_contours, key=cv2.contourArea)
    board_x, board_y, w, h = cv2.boundingRect(board_contour)
    board_center_x = board_x + w//2
    board_center_y = board_y + h//2 # 方块中心点

    return (chess_x, chess_y), (board_center_x, board_center_y)

    def calculate_press_time(chess_pos, board_pos):
    """根据距离计算按压时间"""
    dx = abs(chess_pos[0] board_pos[0])
    dy = abs(chess_pos[1] board_pos[1])
    distance = np.sqrt(dx**2 + dy**2) # 欧几里得距离
    press_time = int(distance * PRESS_COEFFICIENT) # 换算成按压时间(毫秒)
    return press_time

    def auto_jump():
    """主循环:自动跳一跳"""
    print("Agent开始玩跳一跳啦~按Ctrl+C停止!")
    while True:
    try:
    # 1. 获取截图
    img = get_screenshot()
    # 2. 识别棋子和方块
    chess_pos, board_pos = find_chess_and_board(img)
    # 3. 计算按压时间
    press_time = calculate_press_time(chess_pos, board_pos)
    # 4. 模拟按压屏幕(跳一跳需要长按屏幕)
    agent.tap_hold(x=chess_pos[0], y=chess_pos[1], duration=press_time/1000)
    print(f"跳啦!距离:{int(np.sqrt((chess_pos[0]board_pos[0])**2 + (chess_pos[1]board_pos[1])**2))} 按压时间:{press_time}ms")
    # 等待跳跃完成,避免连续操作
    time.sleep(1.5)
    except Exception as e:
    print(f"小失误~{e},休息1秒继续!")
    time.sleep(1)
    continue

    # 启动Agent
    if __name__ == "__main__":
    # 先手动打开手机上的跳一跳,再运行代码
    input("打开跳一跳后按回车开始:")
    auto_jump()

    四、运行教程&避坑指南

    1. 怎么运行?

    • 把代码保存为jump_agent.py,放在电脑里;
    • 手机打开跳一跳,进入游戏界面,用数据线连电脑;
    • 命令行敲python jump_agent.py,按回车,Agent就开始自动玩啦~

    2. 常见坑怎么避?

    • 找不到棋子/方块:把手机亮度调到最高,游戏背景别选太花的,纯黑背景最稳;
    • 跳太远/太近:改代码里的PRESS_COEFFICIENT参数,跳远了调小,跳近了调大,每次调0.05就行;
    • 连接不上手机:检查USB调试开了没,数据线是不是原装的,或者换个USB口试试~

    五、进阶玩法:从跳一跳到王者荣耀

    学会了简单的跳一跳Agent,想玩点刺激的?教大家快速进阶到王者荣耀自动人机Agent,核心就改两步:

  • 视觉识别:用Transformer替换OpenCV,识别英雄、野怪、技能按钮(用2025年底更新的轻量版ViT模型,电脑没显卡也能跑);
  • 决策逻辑:加个简单的状态机,比如“看到野怪→移动过去→按攻击键→放技能”,用Open-AutoGLM的agent.key_click()模拟按键;
  • 其实现在的AI Agent技术已经很成熟了,不光能玩游戏,还能自动刷短视频、做任务,核心都是“视觉识别+动作模拟+决策逻辑”这一套,学会了这个底层逻辑,做任何手机自动化Agent都手到擒来~

    最后唠两句

    其实开发游戏Agent真的不难,不用怕自己是新手,从最简单的跳一跳开始,一步步上手,慢慢就理解AI Agent的核心了。而且现在AI行业的风口真的很猛,会做这种实际落地的Agent项目,不管是找工作还是做副业,都超有优势~

    如果大家想深入学,从基础的Python、OpenCV到深度学习、Agent框架,一步步系统学起来,才能真正把技术吃透,而不是只会抄代码~

    目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步。想要系统学习AI知识的朋友可以看看我的教程http://blog.csdn.net/jiangjunshow,教程通俗易懂,风趣幽默,从深度学习基础原理到各领域实战应用都有讲解。

    好啦,今天的Agent开发教程就到这,代码亲测可运行,有问题评论区留言,我都会回~关注我,下次教大家做能自动刷短视频的Agent,干货满满不迷路😜! 在这里插入图片描述

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 开发Agent自动玩手机游戏,附代码
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!