微信小游戏跳一跳外挂辅助程序

上次基于python + WebDriverAgent的“跳—跳”小程序高分教程后面补充一个微信小游戏跳一跳外挂辅助程序

原理说明

计算

 

调试时,修改 debug 为 True,真实运行时,设置为 False。停顿时间设置为 2s,如果电脑运算速度太快,保险起见可以设置为 2s。

原理

  1. adb 截图
  2. 找到小人臀部坐标(hsv 色相紫黑色)
  3. 找到下一桥墩的顶点坐标
  4. 找到下一桥墩的极左/极右点坐标
  5. 计算出下一桥墩的中心点坐标
  6. 从小人臀部到下一桥墩中心点计算出跳远距离
  7. 将距离换算为长按时长
  8. 使用 adb 跳

 

开发环境搭建

系统环境

笔者环境:

$ uname -a
Darwin rmbp-finn.lan 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64

$ python --version
Python 2.7.10

$ 测试机
小米5
复制代码

安装 Python 2.7

略。

(可选安装) virtualenv, virtualenvwrapper

略。

安装 adb

略。

工程搭建

先 fork 一份到

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我们可以得知Python跳一跳脚本的实现需要以下步骤: 1.安装Python环境,确保Python安装成功。 2.安装ADB驱动,确保手机与电脑连接成功。 3.打开微信跳一跳游戏,点击开始游戏。 4.打开CMD控制台,进入Python脚本所在的目录。 5.运行Python脚本,等待脚本自动跳一跳。 以下是一个简单的Python跳一跳脚本的示例代码: ```python import os import time import random # 设置按压时间 def get_press_time(distance): press_time = distance * 1.35 press_time = max(press_time, 200) return press_time # 获取棋子和下一个方块的坐标 def get_piece_and_board(im): w, h = im.size piece_x, piece_y = None, None board_x, board_y = None, None for i in range(h): for j in range(w): pixel = im.getpixel((j, i)) if sum(pixel) < 100: if piece_x is None: piece_x, piece_y = j, i elif board_x is None and i < piece_y: board_x, board_y = j, i return piece_x, piece_y, board_x, board_y # 获取距离 def get_distance(piece_x, piece_y, board_x, board_y): distance = ((board_x - piece_x) ** 2 + (board_y - piece_y) ** 2) ** 0.5 return distance # 模拟按压 def press(distance): press_time = get_press_time(distance) x = random.randint(300, 500) y = random.randint(1000, 1200) cmd = 'adb shell input swipe {} {} {} {} {}'.format(x, y, x, y, int(press_time)) os.system(cmd) # 主函数 def main(): while True: os.system('adb shell screencap -p /sdcard/autojump.png') os.system('adb pull /sdcard/autojump.png .') im = Image.open('autojump.png') piece_x, piece_y, board_x, board_y = get_piece_and_board(im) distance = get_distance(piece_x, piece_y, board_x, board_y) press(distance) time.sleep(1) if __name__ == '__main__': main() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值