微信跳一跳辅助工具(Python)

时间:2023-01-29 23:20:41

1.准备工具

  • adb驱动 –> 最好下载最新的版本,因为安卓对系统的性能有所提高,对驱动的要求也更高 ( 链接:https://pan.baidu.com/s/1qZqAxT6 密码:61xo)
  • 安卓手机 –>苹果手机仅仅只是驱动不同,故而程序代码会略有不同
  • 打开手机调试模式 –> 根据手机版本,请自行百度
  • usb线接好手机和电脑 –>保证电脑的端口驱动没有问题,手机usb调试模式打开

2.实现原理

  • 获取手机的实时截图
  • 点击开始位置和结束位置
  • 计算两个点的距离
  • 计算按压时间
  • 发送按压指令
  • 重新刷新手机截图

3.Python代码

#!/usr/bin/env python
#coding=utf-8
import os
import PIL,numpy
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import time

need_update = True

def get_screen_images():
    os.system('adb shell screencap -p /sdcard/screen.png')  #获取当前界面的手机截图
    os.system('adb pull /sdcard/screen.png')  #下在当前这个截图到电脑的当前文件夹下面
    return numpy.array(PIL.Image.open('screen.png'))

def jump_to_next(point1, point2):
    x1, y1 = point1; x2, y2 = point2
    distance = ((x2-x1)**2 + (y2-y1)**2)**0.5
    os.system('adb shell input swipe 320 410 320 410 {}'.format(int(distance*2.00)))

def on_click(event, coor=[]): #[(x1,y1),(x2,y2)]
    coor.append((event.xdata, event.ydata))
    if len(coor) == 2:
        jump_to_next(coor.pop(), coor.pop())
        need_update = True

def update_screen(frame): #更新照片
    global need_update
    if need_update:
        time.sleep(1)
        axes_image.set_array()
        need_update = False
    return axes_image,

figure = plt.figure()  #创建一个空白的图片对象
axes_image = plt.imshow(get_screen_images(),animated=True)  #把获取的照片画在坐标轴上
figure.canvas.mpl_connect('button_press_event', on_click)
ani = FuncAnimation(figure, update_screen, interval=50, blit=True)
plt.show()

注意:
- func():返回的结果是值
- func:返回的是对象


模块在import后,如果显示错误,请按照你习惯的方式进行必要的安装
  • import os :导入系统模块,以方便电脑可以操控手机
  • import PIL :导入图像处理标准库,以方便操作图片
  • import numpy:导入numpy模块,可用来存储和处理大型矩阵
  • import matplotlib:导入科学计算库,达到快速计算的效果
  • import time:导入时间函数库,以方便延迟操作

4.操作说明

  • 运行Python程序
  • 在程序生成的图片中,用鼠标点击起始位置和结束位置
    微信跳一跳辅助工具(Python)
  • 手机客户端会发现跳一跳的外挂已经开始执行了~