欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python微信跳一跳游戲輔助代碼解析

 更新時(shí)間:2018年01月29日 15:21:23   作者:烏托邦眺望  
本篇文章給大家詳細(xì)講解了用python寫的一個(gè)微信跳一跳輔助腳本的源碼,對(duì)此有興趣的朋友參考下吧。

這個(gè)代碼實(shí)現(xiàn)的是   手動(dòng)點(diǎn)擊起點(diǎn) 和 終點(diǎn)  ,程序自動(dòng)判斷距離、觸屏?xí)r間  完成跳躍 

原理(摘自項(xiàng)目說(shuō)明頁(yè)面):

1. 將手機(jī)點(diǎn)擊到“跳一跳”小程序界面;

2. 用Adb 工具獲取當(dāng)前手機(jī)截圖,并用adb將截圖pull上來(lái):

adb shell screencap -p /sdcard/1.png

adb pull /sdcard/1.png .

3. 用matplot顯示截圖;

4. 用鼠標(biāo)點(diǎn)擊起始點(diǎn)和目標(biāo)位置,計(jì)算像素距離;

5. 根據(jù)像素距離,計(jì)算按壓時(shí)間;

6. 用Adb工具點(diǎn)擊屏幕蓄力一跳:

adb shell input swipe x y x y time

環(huán)境準(zhǔn)備(window7):

1. 下載 、安裝 python3

2. pip安裝   

cmd窗口中 進(jìn)入python3根目錄下的script文件夾,

執(zhí)行命令  

則Scripts文件夾下會(huì)出現(xiàn)一系列和pip有關(guān)的文件,其中有pip.exe

將pip.exe的路徑也添加到環(huán)境變量PATH中

在cmd下輸入“pip”,如果能識(shí)別"pip"指令,則說(shuō)明pip安裝成功了

3. adb驅(qū)動(dòng)安裝

adb驅(qū)動(dòng)下載地址:https://adb.clockworkmod.com/

下載完后  將adb 命令 添加到系統(tǒng)環(huán)境變量里面

打開CMD控制臺(tái),輸入adb,出現(xiàn)如下界面,即為配置成功。如圖:

4.下載源碼

到這一步,我們要將源碼下載到本地電腦里。

github地址:https://github.com/wangshub/wechat_jump_game

5.安裝依賴包

跳一跳微信輔助的最終運(yùn)行需要很多的Python模塊,作者已經(jīng)將這些所需要的模塊都寫在了源碼中的requirements.txt中,
所以我們執(zhí)行命令 pip install -r requirements.txt,即可將這些必須的模塊下載下來(lái),模塊包括有matplotlib,numpy等。

如圖,我們使用CD命令,切換到源碼的下載目錄,

再執(zhí)行命令pip install -r requirements.txt

6.設(shè)置手機(jī)權(quán)限

將安卓手機(jī)用USB與電腦相連接,在安卓手機(jī)上打開開發(fā)者模式,并開啟USB調(diào)試模式,每種安卓手機(jī)開啟的方法都不一樣,以小米 Mix2 手機(jī)為例,在設(shè)置中找到手機(jī)版本號(hào),連續(xù)點(diǎn)擊5次即可開啟開發(fā)者模式然后進(jìn)入開發(fā)者選項(xiàng)打開   usb調(diào)試、usb調(diào)試(安全設(shè)置)、

如果以上操作沒(méi)有任何錯(cuò)誤,那么在CMD控制臺(tái),執(zhí)行命令 adb devices可顯示當(dāng)前手機(jī)連接的端口號(hào)。

7.運(yùn)行

在以上步驟都沒(méi)有任何錯(cuò)誤的情況下,打開微信,開啟跳一跳小游戲,進(jìn)入游戲主頁(yè)面,然后再打開CMD控制臺(tái),使用CD命令切換目錄,切換到跳一跳輔助的源碼目錄下,執(zhí)行命令wechat_jump_auto.py。

參數(shù)調(diào)節(jié)請(qǐng)打開源碼目錄下的config文件夾,里面有適配各種屏幕和機(jī)型的文件夾,根據(jù)自己的分辨率或機(jī)型,點(diǎn)擊進(jìn)入相應(yīng)文件夾,打開里面的config.json文件,修改參數(shù)即可。建議修改前最好備份一份。

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(): 定義 截取手機(jī)屏幕 并 發(fā)送截圖到電腦 函數(shù)
 os.system('adb shell screencap -p /sdcard/autojump.png') 發(fā)送 截屏命令 到手機(jī)
 os.system('adb pull /sdcard/autojump.png .')    發(fā)送 拉取圖片到電腦 命令
def jump(distance):     定義 跳躍函數(shù) 形參為距離
 press_time = distance * 1.35 計(jì)算按屏幕 時(shí)間 
 press_time = int(press_time)
 cmd = 'adb shell input swipe 320 410 320 410 ' + str(press_time) 按屏幕命令
 print(cmd)
 os.system(cmd) 發(fā)送 按屏幕命令

fig = plt.figure() 創(chuàng)建一個(gè)圖像對(duì)象(窗口) 
index = 0
cor = [0, 0]
pull_screenshot() 執(zhí)行截屏函數(shù)
img = np.array(Image.open('autojump.png')) Image.open讀取圖片 到名為 img 的圖片數(shù)組
update = True 
click_count = 0
cor = []
def update_data(): 定義更新數(shù)據(jù)的函數(shù) 更新圖片
 return np.array(Image.open('autojump.png'))
im = plt.imshow(img, animated=True)  im = 繪制圖像(數(shù)組名、動(dòng)畫=打開)
def updatefig(*args):  定義動(dòng)畫函數(shù)
 global update
 if update:
  time.sleep(1.5)
  pull_screenshot()
  im.set_array(update_data())
  update = False
 return im,
def onClick(event):   定義 鼠標(biāo)點(diǎn)擊 處理函數(shù)
 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) 鼠標(biāo)點(diǎn)擊 處理函數(shù) onClick ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
圖像函數(shù) 動(dòng)畫函數(shù) 更新頻率50ms 更新所有點(diǎn) plt.show() 顯示圖像

運(yùn)行結(jié)果:

python wechat_jump_py3.py

 

第一行 發(fā)送截圖

2       第一次鼠標(biāo)點(diǎn)擊  生成坐標(biāo)

3       第二次鼠標(biāo)點(diǎn)擊  生成坐標(biāo)

4        計(jì)算距離

5         發(fā)送點(diǎn)擊屏幕命令  swipe后面四個(gè)參數(shù)是    (滑動(dòng)起點(diǎn) x   y     滑動(dòng)終點(diǎn)   x   y      滑動(dòng)用時(shí))

第一次點(diǎn)擊

第二次點(diǎn)擊

相關(guān)文章

  • 深入了解Python 方法之類方法 & 靜態(tài)方法

    深入了解Python 方法之類方法 & 靜態(tài)方法

    這篇文章主要介紹了Python類方法 & 靜態(tài)方法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • python中namedtuple函數(shù)的用法解析

    python中namedtuple函數(shù)的用法解析

    這篇文章主要介紹了python中namedtuple函數(shù)的用法解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Python的Flask框架中web表單的教程

    Python的Flask框架中web表單的教程

    這篇文章主要介紹了Python的Flask框架中web表單的教程,表單是學(xué)習(xí)各個(gè)web框架中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • python遞歸全排列實(shí)現(xiàn)方法

    python遞歸全排列實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了python遞歸全排列實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python的dict判斷key是否存在的方法

    python的dict判斷key是否存在的方法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python的dict判斷key是否存在的方法,有需要的朋友們可以參考下。
    2020-12-12
  • Python3 SSH遠(yuǎn)程連接服務(wù)器的方法示例

    Python3 SSH遠(yuǎn)程連接服務(wù)器的方法示例

    這篇文章主要介紹了Python3 SSH遠(yuǎn)程連接服務(wù)器的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 十個(gè)Python經(jīng)典小游戲的代碼合集

    十個(gè)Python經(jīng)典小游戲的代碼合集

    這篇文章主要為大家分享十個(gè)Python經(jīng)典的小游戲代碼,非常適合Python初學(xué)者練手。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-05-05
  • Python?Watchdog實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件系統(tǒng)

    Python?Watchdog實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件系統(tǒng)

    Python?Watchdog是一個(gè)優(yōu)秀的第三方庫(kù),用于實(shí)現(xiàn)高效的文件系統(tǒng)監(jiān)控,本文將為大家詳細(xì)介紹一下Python如何使用Watchdog實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件,需要的可以參考下
    2023-11-11
  • Python缺失值處理方法

    Python缺失值處理方法

    這篇文章主要介紹了Python缺失值處理方法,文章圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • matplotlib.pyplot畫圖并導(dǎo)出保存的實(shí)例

    matplotlib.pyplot畫圖并導(dǎo)出保存的實(shí)例

    今天小編就為大家分享一篇matplotlib.pyplot畫圖并導(dǎo)出保存的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論