自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教你用 Python 來玩微信跳一跳

新聞 后端
2017 年 12 月 28 日下午,微信發(fā)布了 6.6.1 版本,加入了「小游戲」功能,并提供了官方 DEMO「跳一跳」。如果能精確測量出起始和目標(biāo)點(diǎn)之間測距離,就可以估計(jì)按壓的時(shí)間來精確跳躍?所以花 2 個(gè)小時(shí)寫了一個(gè) Python 腳本進(jìn)行驗(yàn)證。

 https://wangshub.github.io

GitHub 項(xiàng)目地址

  • QQ 群
    • github微信跳一跳 314659953 (已滿)
    • github微信跳一跳(2) 176740763 (滿)
    • 跳一跳 89213434

更新日志:

  • 2017-12-29 :

    • 增加更新自動化運(yùn)行腳本,感謝 GitHub 上的 @binderclip
  • 2017-12-30 :

    • 請將安卓手機(jī)的 USB 調(diào)試模式打開,設(shè)置》更多設(shè)置》開發(fā)者選項(xiàng)》USB 調(diào)試,如果出現(xiàn)運(yùn)行腳本后小人不跳的情況,請檢查是否有打開“USB 調(diào)試(安全模式)”
    • 根據(jù)大家反饋:1080 屏幕距離系數(shù) 1.393 ,2K 屏幕為 1
    • 添加部分機(jī)型配置文件,可直接復(fù)制使用

相關(guān)問題

請先查閱一下 issue 區(qū)

游戲模式

2017 年 12 月 28 日下午,微信發(fā)布了 6.6.1 版本,加入了「小游戲」功能,并提供了官方 DEMO「跳一跳」。

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

[[215765]]

如果能精確測量出起始和目標(biāo)點(diǎn)之間測距離,就可以估計(jì)按壓的時(shí)間來精確跳躍?所以花 2 個(gè)小時(shí)寫了一個(gè) Python 腳本進(jìn)行驗(yàn)證

希望不要把分?jǐn)?shù)刷太高,容易沒朋友的。。。

操作規(guī)范

考慮到生產(chǎn)環(huán)境的規(guī)范性,實(shí)驗(yàn)與項(xiàng)目之間不受干擾,請盡量用新的虛擬環(huán)境來完成實(shí)驗(yàn)

MacOS/Win,請使用如下操作開辟新的虛擬環(huán)境(不強(qiáng)調(diào)表示MacOS/Win相同操作)

  • 下載Anaconda. MacOS:默認(rèn)安裝/Win:注意安裝時(shí)候勾選配置路徑或者之后手動配置,直至cmd后conda關(guān)鍵字有效
  • 查看所有的虛擬環(huán)境 conda info --envs
  • 使用命令: conda create -n wechat_env python=3 ,創(chuàng)建名為 wechat_env 的虛擬環(huán)境,且配置python版本為python3
  • 激活虛擬環(huán)境:MacOS: source activate wechat_env /Win: activate wechat_env
  • 安裝所需要的包,比如 matplotlib 等,建議使用 conda install package_name 來避免虛擬環(huán)境包的路徑問題

接下來的操作非必須,僅當(dāng)實(shí)驗(yàn)完成后可操作,試驗(yàn)階段全程在虛擬環(huán)境中操作,進(jìn)入虛擬環(huán)境會有前置符號表示如:

(wechat_env) ~/Desktop/wechat_jump_game-master>
  • 退出虛擬環(huán)境:MacOS: source deactivate wechat_env / Win: deactivate wecha_env
  • 刪除虛擬環(huán)境: conda remove -n wechat_env --all

工具介紹

  • Python
  • 手機(jī)或模擬器
  • ADB 驅(qū)動,可以到 這里 下載
  • 相關(guān)依賴

如果你是 iOS + MacOS,請參考下面的配置:

如果你是 Android + MacOS,請參考下面的配置:

  • Python 3
  • 使用brew進(jìn)行安裝 brew cask install android-platform-tools
  • 安裝完后插入安卓設(shè)備且安卓已打開usb調(diào)試模式(部分新機(jī)型可能需要再另外勾上 允許模擬點(diǎn)擊 權(quán)限),終端輸入 adb devices ,顯示如下表明設(shè)備已連接
List of devices attached
6934dc33	device

如果你是 Android + Windows,請參考下面的配置:

  • Python 3
  • 安裝 ADB 后,請?jiān)?環(huán)境變量 里將 adb 的安裝路徑保存到 PATH 變量里,確保 adb 命令可以被識別到。
  • 同 Android + MacOS 測試連接

關(guān)于Win+Android的adb調(diào)試添加路徑等問題,可以嘗試使用Tools文件夾中adb文件夾進(jìn)行調(diào)試,詳見adb中readme文件

依賴安裝

pip install -r requirements.txt

原理說明

  1. 將手機(jī)點(diǎn)擊到《跳一跳》小程序界面;
  2. 用 ADB 工具獲取當(dāng)前手機(jī)截圖,并用 ADB 將截圖 pull 上來
adb shell screencap -p /sdcard/autojump.png
    adb pull /sdcard/autojump.png .
  1. 計(jì)算按壓時(shí)間
  • 手動版:用 Matplotlib 顯示截圖,用鼠標(biāo)點(diǎn)擊起始點(diǎn)和目標(biāo)位置,計(jì)算像素距離;
  • 自動版:靠棋子的顏色來識別棋子,靠底色和方塊的色差來識別棋盤;
  1. 用 ADB 工具點(diǎn)擊屏幕蓄力一跳;
adb shell input swipe x y x y time(ms)

安卓手機(jī)操作步驟

  • 安卓手機(jī)打開 USB 調(diào)試,設(shè)置》開發(fā)者選項(xiàng)》USB 調(diào)試
  • 電腦與手機(jī) USB 線連接,確保執(zhí)行 adb devices 可以找到設(shè)備 ID
  • 界面轉(zhuǎn)至微信跳一跳游戲,點(diǎn)擊開始游戲
  • 運(yùn)行 python wechat_jump_auto.py ,如果手機(jī)界面顯示 USB 授權(quán),請點(diǎn)擊確認(rèn)
  • 請按照你的手機(jī)分辨率從 ./config/ 文件夾找到相應(yīng)的配置,拷貝到 *.py 同級目錄 ./config.json (如果屏幕分辨率能成功探測,會直接調(diào)用 config 目錄的配置,不需要復(fù)制)

iOS 手機(jī)操作步驟

  1. 運(yùn)行安裝好的 WebDriverAgentRunner
  2. 將手機(jī)點(diǎn)擊到《跳一跳》小程序界面
  3. 運(yùn)行腳本。有兩種模式可供選擇:手動輔助跳 和 自動連續(xù)跳
    • 手動輔助跳
      • 命令行運(yùn)行 python3 wechat_jump_iOS_py3.py
      • 依次點(diǎn)擊彈出的窗口中的起始位置和目標(biāo)位置,會自動計(jì)算距離后起跳
      • 根據(jù)起跳的精準(zhǔn)情況更改 python3 wechat_jump_iOS_py3.py 中的 time_coefficient參數(shù),直到獲得***取值
    • 自動連續(xù)跳
      • 拷貝 ./config/iPhone 目錄下對應(yīng)的設(shè)備配置文件,重命名并替換到 ./config.json
      • 命令行運(yùn)行 python3 wechat_jump_auto_iOS.py
      • 會自動計(jì)算坐標(biāo)并連續(xù)起跳,根據(jù)起跳的精準(zhǔn)情況更改 ./config.json 中的 press_coefficient 參數(shù),直到獲得***取值

實(shí)驗(yàn)結(jié)果

TODO

  •  可以對拉上來的圖片進(jìn)行顏色分割,識別小人和目標(biāo)中心,這樣就不需要手動點(diǎn)擊自動彈跳。

事實(shí)證明,機(jī)器人比人更會玩兒游戲。

責(zé)任編輯:張燕妮 來源: 推酷
相關(guān)推薦

2018-01-16 09:35:26

微信小游戲跳一跳

2018-01-03 09:26:56

2018-03-01 16:40:45

微信廣告跳一跳

2018-01-15 13:58:46

架構(gòu)技術(shù)棧微信半月刊

2018-01-22 10:00:44

AICV小程序

2022-07-15 13:09:33

Three.js前端

2018-01-08 11:12:13

2019-11-08 10:48:07

Windows操作系統(tǒng)微信Windows 10

2018-03-25 10:06:30

小程序第三方測試跳一跳

2019-10-17 21:37:28

微信飛機(jī)大戰(zhàn)Python

2018-03-12 16:47:47

小程序

2018-02-07 15:10:29

2020-09-15 08:53:08

parallelStr表達(dá)式函數(shù)

2009-06-01 08:45:25

iPhone蘋果移動OS

2011-05-17 11:06:49

EBGP路由

2024-04-18 09:17:17

2021-05-18 14:42:55

PythonMySQL

2019-01-24 09:00:00

PythonAutoML機(jī)器學(xué)習(xí)

2020-04-26 17:04:18

Python代碼數(shù)據(jù)

2022-12-05 10:47:37

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號