【辅助工具】Python实现微信跳一跳

最近迷上了微信跳一跳小游戏,正好也看到知乎上有大神分享了技术贴,我也参考了好多资料,原理就是通过abd命令截取图片,python计算两个点距离,然后转化按压时间,让电脑来完成游戏。我花了很长时间才把程序跑起来,作为一名技术小白我谈谈自己的认识,尽量让大家少走弯路。

先贴上大神的github地址:https://github.com/wangshub/wechat_jump_game

准备工具

  • abd驱动
  • 安卓手机
  • 打开手机调试模式
  • usb线连接好手机与电脑

实现原理

  • 获取手机实时截图
  • 点击起始位置与落地位置
  • 计算两个点距离
  • 计算按压时间
  • 发送按压指令
  • 重新刷新手机截图

我用的python版本是 3.6 开发环境是pycharm,首先下载abd驱动,在pc上通过命令模式操作手机。

下载好后配置环境变量,右键此电脑-高级系统设置-环境变量-Path

或者直接在abd所在的文件夹shift右键打开cmd

在cmd窗口中输入abd

然后有一些库需要提前下载好:matplotlib, PIL, numpy

我之前下载的anaconda自带这些库

获取手机截图:

os.system(‘adb shell screencap -p /sdcard/screen.png‘)#手机获取实时截图
os.system(‘adb pull /sdcard/screen.png‘)#PC端获取截图

通过numpy转化成多维数组进行图片绘制:

numpy.array(PIL.Image.open(‘screen.png‘))

贴一份完整代码

 1 # -*- coding: utf-8 -*-
 2 import os
 3 import time
 4 import numpy,PIL
 5 import matplotlib.pyplot as plt
 6 from matplotlib.animation import FuncAnimation
 7
 8 need_update = True
 9
10 def get_screen_image():
11     os.system(‘adb shell screencap -p /sdcard/screen.png‘)
12     os.system(‘adb pull /sdcard/screen.png‘)
13     return numpy.array(PIL.Image.open(‘screen.png‘))
14
15 def jump(point1, point2):
16     x1, y1 = point1; x2, y2 = point2
17     dis = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
18     os.system(‘adb shell input swipe 320 410 320 410 {}‘.format(int(dis * 1.35)))#抓包获取(坐标、1.35是单位按压时间)
19
20 def on_click(event, coor = []):#点击事件的坐标位置
21     coor.append((event.xdata, event.ydata))
22     if len(coor) == 2:#单击2次开始计算
23         jump(coor.pop(), coor.pop())
24     need_update = True
25
26 def update_screen(frame):
27     global need_update
28     if need_update:
29         time.sleep(1)
30         axes_image.set_array(get_screen_image())#更新图片
31         need_ipdate = False
32     return axes_image,
33
34 figure = plt.figure()#创建空白对象
35 axes_image = plt.imshow(get_screen_image(), animated = True)#把获取的图片画在坐标轴
36 figure.canvas.mpl_connect(‘button_press_event‘, on_click)#单击回调函数(传递的是对象不是参数!!)
37 ani = FuncAnimation(figure, update_screen, interval = 50, blit = True) #刷新图片、时间50ms
38 plt.show()

手机连接pc一定要打开usb调试!!!!一加5t 关于手机-狂点版本号 在开发者选项中打开usb调试,什么?你说其他手机打开方式?百度吧!

最后贴几张图  ( ?° ?? ?°)?

无奈分数如果太高是会上传失败的,谁有解决办法可一定要告诉我啊~

原文地址:https://www.cnblogs.com/lesroad/p/8486083.html

时间: 2024-08-30 10:04:26

【辅助工具】Python实现微信跳一跳的相关文章

用Python玩微信跳一跳详细使用教程

github地址:https://github.com/wangshub/wechat_jump_game 工具介绍 Python 3 Android 手机 Adb 驱动 Python Matplot绘图 python3安装 安装pip 安装依赖包 在github地址将源码下载下来解压后,使用cd命令进入项目目录, 执行命令 pip install -r requirements.txt.会将依赖包下载下来. 下载好之后执行命令python -m pip list 安装adb驱动 下载adb驱动

使用python编写微信跳一跳的自动脚本

实现思路: 调用adb命令,截图 寻找小小人的底部中心点role(从下到上扫描,直到找到小小人相同像素的点,至于小小人像素点rgb是什么,可以使用photoshop查看) 寻找棋盘最高点top,然后寻找棋盘最右点.根据最高点与最右点,确定棋盘中心点border 计算role与border之间的直线距离,然后设置按压时间=距离*按压系数 调用adb 命令,按压屏幕 完整代码,测试机Oppo r11 #!/usr/bin/env python # -*- coding: utf-8 -*- from

用python玩微信跳一跳(win10+安卓)

一.前言 一场跨年的寒风席卷了整个北方,把我们带到了雪花烂漫的季节:一场"跳一跳"的风波也席卷了我们年轻人,好友们从此展开了如火如荼的较量.由此我们如何才能轻松战胜好友呢?这背后少不了我们强大的技术支持和耐心的调试,那让我们一起去尝试吧! 二.步骤 1.安装python(2.3版本都可以) 安装的时候要勾上"Add Python 3.6 to Path",然后在命令提示符窗口输入python 2.adb驱动安装 adb驱动下载地址:https://adb.clock

python_微信 跳一跳

今天用python刷了一下微信跳一跳游戏得分数. 不是仅仅是玩一玩,而是为了把开发环境搭建好.(这个借口好) 参考: http://blog.csdn.net/LittleBeautiful/article/details/78955792 原文地址:https://www.cnblogs.com/lwbjyp/p/8213897.html

如何使用NSDL玩转微信跳一跳

目前网上介绍windows和IOS操作系统上玩微信跳一跳的有很多文章,但介绍Linux平台下的文章相对较少,所以动手操作下和大家分享,同时感谢wangshub在github上的分享: 1 下载wechat_jump_game-master 下载地址:https://github.com/wangshub/wechat_jump_game/archive/master.zip 2 解压安装并安装依赖包 pip3.4 install -r requirements.txt 操作如下:? 进入pyth

微信跳一跳

题目大意如下:微信跳一跳游戏,输入1,2,,0三个数字: 1代表跳到了下一个盒子但不在中心,得分为1,总分加1: 2代表跳到了下一个盒子且在中心:根据上次的得分计算:如果上一次得分为1,那此次得分为2,总分加2分,如果上一次得分为2,那此次得分为4,总分加4:以此类推:如上一次得分为8分,这次又跳到了盒子中心,那此次得分为10分,总分加10: 0代表没有跳到盒子上,游戏结束. ------------------------------------------------------------

.NET开发一个微信跳一跳辅助程序

昨天微信更新了,出现了一个小游戏"跳一跳",玩了一下 赶紧还蛮有意思的 但纯粹是拼手感的,玩了好久,终于搞了个135分拿了个第一名,没想到过一会就被朋友刷下去了,最高的也就200来分把,于是就想着要是开发个辅助就好了,于是简单想了一下最高游戏 先来说下这个游戏的界面和规则: 先看看界面 规则:按住屏幕 按一定时间松开就可以跳跃,跳跃到前方的图案中得1分,图按中间得2分(连续多个中间累加2分,比如第一个2分 第二个4分 第三个6分 最高累计32分) 其它规则不说明了 整理了下实现原理,其

【learning】微信跳一跳辅助c++实现 轻松上万 【未完待续】

写在前面 17年年底Wechat出了这个跳一跳的小游戏,今年2月份的时候简单地玩了一下,发现被游戏虐了(手太残了只能跳20多).     今天刚好有点空,于是就花了一个下午的时间写了一个跳一跳的c++辅助. 由于本OIER既不会Python,也不会安卓的USB调试,更不会单片机,故写了一一个操作安卓模拟器的辅助. 先放下效果:(只是先截个图而已,截止至目前跳了2150次,运行1小时55分钟)[未完待续] 据之前的跳一跳大赛的结果,尽管人类的第一为1.2W分,但仍然被本辅助轻松碾在地上. ----

揭密微信跳一跳小游戏那些外挂

WeTest 导读 张小龙:这个游戏发布以后,其实它的效果有点超出我们的预期,我们自己开玩笑说,这个游戏突然变成了有史以来可能用户规模最大的一个游戏,因为它的DAU大概到了1点几亿,但同时出现了很多外挂,我没有想到这么小的一款游戏也会有那么多外挂,我朋友圈的朋友也打出了特别高的分,但是我相信不是他自己打出来的. 1 月 15 日微信在广州召开 2018 年的微信公开课 Pro,张小龙不仅当场玩了一把跳一跳游戏并取得了900多的高分,还特别提到了跳一跳小游戏的外挂: 在跳一跳这样一个小的游戏里面,