> 2017 年 12 月 28 日下午,微信發佈了 6.6.1 版本,加入了「小遊戲」功能,並提供了官方 DEMO「跳一跳」。
>自己也是上癮,玩了一百多局,也只有得到189分,後來看到網上一系列“教你用Python玩跳一跳”的文章,故決定寫一篇經驗貼用**最簡單的方式**實現微信跳一跳遊戲。
### **開始前說明**
> 爲了環境統一和成功實現,本文使用安卓(藍疊)虛擬機實現。本文主要以:`Android` + `Windows` 實現,Mac下同理也可以通過`Android` + `MacOS`實現。
> 希望大家不要把分數刷太高,容易沒朋友的。分數太高被會查封,小心被微信官方團隊問候。
> **微信跳一跳QQ交流羣: 657588688**
### **環境依賴安裝**
- **Python 2.7**
* 點擊[這裏](https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi)下載,下載`python-2.7.14.msi`一路next到成功即可
* 打開控制檯,輸入:`python –version`,出現`Python 2.7.xx`字樣說明安裝成功
- **Python依賴**(依賴包在`requirements.txt`中)
* 依賴包安裝:`pip install -r requirements.txt`
- **手機或者模擬器**(這裏推薦使用++藍疊模擬器++,點擊[這裏](http://202.114.96.192/aliosscdn.bluestacks.cn/package/BlueStacksGPSetup.exe)直接下載,藍疊[官網](http://www.bluestacks.cn/),建議不要使用夜神模擬器,無法使用adb連接)
- **adb**(位於 Android SDK 中:`platform-tools/adb`)
* 安裝 [Universal ADB Drivers](https://adb.clockworkmod.com/) 後,請在 環境變量 裏將 adb 的安裝路徑保存到 PATH 變量裏,確保 `adb` 命令可以被識別到。
* 或者你也可以安裝完整版Android SDK包 | 你需要安裝好java環境
### **手機和模擬器說明**
* 請將安卓手機的 USB 調試模式打開,設置》更多設置》開發者選項》USB 調試,如果出現運行腳本後小人不跳的情況,請檢查是否有打開“USB 調試(安全模式)”
* 根據大家反饋:1080 屏幕距離係數 **1.393**,2K 屏幕爲 **1**,建議使用1080p
* 添加部分機型配置文件,可直接複製使用
* 如果使用藍疊模擬器:設置分辨率爲:`1080 * 1920`(豎屏),如果是`1920 * 1080`(橫屏) 則模擬器的截圖是橫屏,導致識別出錯
### **原理說明**
> (代碼實現見:`wechat_jump_auto.py`,以下只是對於代碼實現原理的介紹)
* 將手機點擊到《跳一跳》小程序界面;
* 用 ADB 工具獲取當前手機截圖,並用 ADB 將截圖 pull 上來
adb shell screencap -p /sdcard/autojump.png
adb pull /sdcard/autojump.png .
adb shell input swipe x y x y time(ms)
安卓手機(模擬機)操作步驟,到這裏才正式開始
1.安卓手機打開 USB 調試,設置》開發者選項》USB 調試
2.電腦與手機 USB 線連接,確保執行adb devices
可以找到設備 ID。tips
:如果打開藍疊模擬器,無法找到你的設備,如:emulator-5554 device
,請執行命令:adb connect localhost:5555
,藍疊默認是localhost:5555
。這時候adb devices
就可以找到設備
3.界面轉至微信跳一跳遊戲,點擊開始遊戲
4.運行python wechat_jump_auto.py
,如果手機界面顯示 USB 授權,請點擊確認。或者也可以直接打開目錄中的wechat_jump_auto.py
文件,可直接運行
注意:請按照你的手機分辨率從./config/
文件夾找到相應的配置,拷貝到 xxx.py 同級目錄./config.json
(如果屏幕分辨率能成功探測,會直接調用 config 目錄的配置,不需要複製,記住要把配置文件重命名爲:config.json
)。
實驗結果
聯繫作者
事實證明,機器人比人更會玩兒遊戲。哈哈,千萬不要刷高分,否則會被揍,請穩步刷分。
如果你覺得不錯的話,不妨打賞一下,這樣我就有更大的動力去完善它,優化它。