日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

微信跳一跳輔助python代碼實現(xiàn)

系統(tǒng) 1691 0

微信跳一跳輔助的python具體實現(xiàn)代碼,供大家參考,具體內(nèi)容如下

這是一個 2.5D 插畫風(fēng)格的益智游戲,玩家可以通過按壓屏幕時間的長短來控制這個「小人」跳躍的距離。可能剛開始上手的時候,因為時間距離之間的關(guān)系把握不恰當(dāng),只能跳出幾個就掉到了臺子下面。
玩法類似于《flappy bird》

下載github的一個程序,但是在windows10下不能運行,原因是windows10下沒有copy命令了,修改為Python自帶的復(fù)制方法,即可完成。今天運行好像一開始不能正確跳第一次,人工輔助后,后續(xù)的跳的很好。

部分代碼:

wechat_jump_iOS_py3.py

            
import wda
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from PIL import Image
import math
import time
import os

# 截圖距離 * time_coefficient = 按鍵時長
# 此數(shù)據(jù)是 iPhoneX 的推薦系數(shù),可根據(jù)手機(jī)型號進(jìn)行調(diào)整
time_coefficient = 0.00125

c = wda.Client()
s = c.session()

def pull_screenshot():
 c.screenshot('1.png')

def jump(distance):
 press_time = distance * time_coefficient
 press_time = press_time
 print(press_time)
 s.tap_hold(200,200,press_time)

fig = plt.figure()
index = 0
cor = [0, 0]
pull_screenshot()
img = np.array(Image.open('1.png'))

update = True
click_count = 0
cor = []

def update_data():
 return np.array(Image.open('1.png'))

im = plt.imshow(img, animated=True)

def updatefig(*args):
 global update
 if update:
 time.sleep(1)
 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))
 print('now = ', coords)
 cor.append(coords)


 click_count += 1
 if click_count > 1:
 click_count = 0

 cor1 = cor.pop()
 cor2 = cor.pop()

 distance = (cor1[0][0] - cor2[0][0])**2 + (cor1[0][1] - cor2[0][1])**2
 distance = distance ** 0.5
 print('distance = ', distance)
 jump(distance)
 update = True

fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
plt.show()

          

wechat_jump_py3.py

            
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/1.png')
 os.system('adb pull /sdcard/1.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('1.png'))

update = True 
click_count = 0
cor = []

def update_data():
 return np.array(Image.open('1.png'))

im = plt.imshow(img, animated=True)


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))
 print('now = ', coords)
 cor.append(coords)
 

 click_count += 1
 if click_count > 1:
 click_count = 0
 
 cor1 = cor.pop()
 cor2 = cor.pop()

 distance = (cor1[0][0] - cor2[0][0])**2 + (cor1[0][1] - cor2[0][1])**2 
 distance = distance ** 0.5
 print('distance = ', distance)
 jump(distance)
 update = True
 


fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
plt.show()


          

原理說明

1. 將手機(jī)點擊到《跳一跳》小程序界面;
2. 用Adb 工具獲取當(dāng)前手機(jī)截圖,并用adb將截圖pull上來

```shell
??? adb shell screencap -p /sdcard/1.png
??? adb pull /sdcard/1.png .
```

3. 用matplot顯示截圖;
4. 用鼠標(biāo)點擊起始點和目標(biāo)位置,計算像素距離;
5. 根據(jù)像素距離,計算按壓時間;
6. 用Adb工具點擊屏幕蓄力一跳;

代碼較多,直接為大家分享源碼下載鏈接,很詳細(xì):微信跳一跳輔助python代碼實現(xiàn)

更多內(nèi)容大家可以參考專題《微信跳一跳》進(jìn)行學(xué)習(xí)。

相關(guān)文章學(xué)習(xí)推薦:

跳一跳小游戲python腳本

python基于TensorFlow實現(xiàn)微信跳一跳的AI

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 普安县| 轮台县| 临潭县| 焉耆| 霍州市| 永登县| 鄂温| 鄂托克旗| 密山市| 忻州市| 石城县| 肥城市| 平阴县| 喀什市| 民权县| 大荔县| 抚顺市| 奉节县| 明光市| 仪征市| 顺平县| 宁陕县| 湖口县| 永胜县| 黄骅市| 阿瓦提县| 溆浦县| 平陆县| 广南县| 大冶市| 揭阳市| 尼木县| 密山市| 兴宁市| 建湖县| 英超| 南昌县| 沙湾县| 长春市| 凤翔县| 合水县|