python跳一跳輔助學習


微信跳一跳輔助工具

准備工具

  • adb驅動
  • 安卓手機
  • 打開手機的調試模式
  • usb接好手機和電腦

 

PyCharm:全宇宙唯一一款專門用於Python開發IDE工具

 

實現原理:

  • 獲取手機的實時的截圖
  • 點擊起始位置和落地位置
  • 計算兩個點的距離
  • 計算按壓時間
  • 發送按壓指令
  • 重新刷新手機截圖
實現代碼:
import os
import PIL,numpy
import  matplotlib.pylab as plt
from matplotlib.animation import FuncAnimation
import time
need_update = True


def get_screen_image():
    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 340 490 340 490 {}'.format(int(distance*1)))
    #手機的單擊位置,0 0 0 0 0 ,x軸y軸滑動后的xy軸單擊時間


def on_calck(event, coor=[]):#綁定鼠標的單擊事件[(x,y)(x2,y2)],
    global need_update
    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(get_screen_image())
        need_update = False
    return axes_image,

figure = plt.figure() #創建一個空白的圖片對象、創建一張圖片
axes_image = plt.imshow(get_screen_image(), animated=True)#把獲取的圖片畫在坐標軸上
figure.canvas.mpl_connect('button_press_event', on_calck)
ani = FuncAnimation(figure, update_screen, interval=50, blit=True)
plt.show()

 

 
詳情:
https://github.com/wangshub/wechat_jump_game


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM