python微信跳一跳游戏辅助代码解析

  import numpy as np

  import matplotlib.pyplot as plt

  import matplotlib.animation as animation

  from PIL import Image

  import math

  import time

  import os

  def pull_screenshot(): 定义 截取手机屏幕 并 发送截图到电脑 函数

  os.system('adb shell screencap -p /sdcard/autojump.png') 发送 截屏命令 到手机

  os.system('adb pull /sdcard/autojump.png .') 发送 拉取图片到电脑 命令

  def jump(distance): 定义 跳跃函数 形参为距离

  press_time = distance * 1.35 计算按屏幕 时间

  press_time = int(press_time)

  cmd = 'adb shell input swipe 320 410 320 410 ' + str(press_time) 按屏幕命令

  print(cmd)

  os.system(cmd) 发送 按屏幕命令

  fig = plt.figure() 创建一个图像对象(窗口)

  index = 0

  cor = [0, 0]

  pull_screenshot() 执行截屏函数

  img = np.array(Image.open('autojump.png')) Image.open读取图片 到名为 img 的图片数组

  update = True

  click_count = 0

  cor = []

  def update_data(): 定义更新数据的函数 更新图片

  return np.array(Image.open('autojump.png'))

  im = plt.imshow(img, animated=True) im = 绘制图像(数组名、动画=打开)

  def updatefig(*args): 定义动画函数

  global update

  if update:

  time.sleep(1.5)

  pull_screenshot()

  im.set_array(update_data())

  update = False

  return im,

  def onClick(event): 定义 鼠标点击 处理函数

  global update

  global ix, iy

  global click_count

  global cor

  # next screenshot

  ix, iy = event.xdata, event.ydata

  coords = []

  coords.append((ix, iy)) [(x1,y1)|(x2,y2)]

  print('now = ', coords)

  cor.append(coords) [[(x1,y1)],[(x2,y2)]]

  click_count += 1

  if click_count > 1:

  click_count = 0

  cor1 = cor.pop() [(x2,y2)]

  cor2 = cor.pop() [(x1,y1)]

  distance = (cor1[0][0] - cor2[0][0])**2 + (cor1[0][1] - cor2[0][1])**2

  x2 - x1 y2 - y1

  distance = distance ** 0.5

  print('distance = ', distance)

  jump(distance)

  update = True

  fig.canvas.mpl_connect('button_press_event', onClick) 鼠标点击 处理函数 onClick

  ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)

  图像函数 动画函数 更新频率50ms 更新所有点

  plt.show() 显示图像