用python來玩微信跳一跳

週六晚上看了強子老師講的用python來玩微信跳一跳,感受頗有意思,全部本身動手試了一下,與你們分享一下。html

完整的程序源碼包。連接: https://pan.baidu.com/s/1c1TAJja 密碼: t89dpython

一:準備工具shell

PyCharm:專門用於Python開發的IDE工具佈局

實現原理url

  • 獲取手機的實時的截圖
  • 點擊起始位置和落地位置
  • 計算兩個點的距離
  • 計算按壓時間
  • 發送按壓指令
  • 從新刷新手機截圖

GUI 佈局spa

建立窗口 -> 添加控件 -> 顯示窗口

  • 代碼可讀性好
  • 耦合度低 面向對象 類

=================================================================================================================

2、關於python、模塊的安裝,和代碼。

1.在電腦上安裝python(我用的是win10和phthon3.6版本)

安裝步驟和借鑑:

電腦如何下載最新版Python並安裝(當前3.6.3):https://jingyan.baidu.com/article/fec7a1e5ceb3121191b4e762.html

2.安裝這次程序所用到的模塊(根據本身安裝的Windows版本和python版本進行下載)。

numpy-1.14.0rc1-cp36-none-win_amd64.whl

Pillow-5.0.0-cp36-cp36m-win_amd64.whl

matplotlib-2.1.1-cp36-cp36m-win_amd64.whl

下載連接:https://www.lfd.uci.edu/~gohlke/pythonlibs/

使用cmd進入下載好的文件的目錄,安裝指令:(opencv是最後安裝的),最好按照下面順序安裝:

pip3.6 install C:\python36\Scripts\numpy-1.14.0rc1-cp36-none-win_amd64.whl

pip3.6 install C:\python36\Scripts\Pillow-5.0.0-cp36-cp36m-win_amd64.whl

pip3.6 install C:\python36\Scripts\matplotlib-2.1.1-cp36-cp36m-win_amd64.whl

 

3.下面是用到的代碼,能夠複製下來,保存爲main.py。

# !/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'wechat'
import os
import PIL,numpy
import matplotlib.pyplot 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 320 410 320 410 {}'.format(int(distance*1.35)))

def on_calck(event, coor=[]):#綁定的鼠標單擊事件
    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()

4.將下載好的adb驅動,和編寫好的jump.py代碼,放到同一個問價夾jump_demo中,方便調用。

而後在jump_demo這個文件夾中直接打開powershell(在文件中shift+鼠標右鍵,選擇在此處打開power shell窗口)了,

或者在cmd裏面,找到相對應的文件夾,而後,運行C:\Users\dell\Desktop\jump_demo> python main.py

最後建議你們不要把分數刷的過高,容易被拉黑。\捂臉笑。

相關文章
相關標籤/搜索