微信跳一跳輔助工具 準備工具 adb驅動 安卓手機 打開手機的調試模式 usb接好手機和電腦 PyCharm:全宇宙唯一一款專門用於Python開發IDE工具 實現原理: 獲取手機的實時的截圖 點擊起始位置和落地位置 技算兩個點的距離 計算按壓時間 發送按壓指令 重新刷新手機截圖 ...
微信跳一跳輔助工具
準備工具
- 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