更新時(shí)間:2018年01月10日13時(shí)17分 來源:傳智播客 瀏覽次數(shù):
項(xiàng)目來源:https://github.com/wangshub/wechat_jump_game
2017 年 12 月 28 日下午,微信發(fā)布了 6.6.1 版本,加入了「小游戲」功能,并提供了官方 DEMO「跳一跳」。今天我們就試試用Python來玩跳一跳。
游戲模式
這是一個(gè) 2.5D 插畫風(fēng)格的益智游戲,玩家可以通過按壓屏幕時(shí)間的長短來控制這個(gè)「小人」跳躍的距離??赡軇傞_始上手的時(shí)候,因?yàn)闀r(shí)間距離之間的關(guān)系把握不恰當(dāng),只能跳出幾個(gè)就掉到了臺子下面。 玩法類似于《flappy bird》
如果能精確測量出起始和目標(biāo)點(diǎn)之間測距離,就可以估計(jì)按壓的時(shí)間來精確跳躍。
注意:能刷到多少分全憑良心,不要把分?jǐn)?shù)刷太高,容易沒朋友的……
工具介紹
Python 2.7或3.6
Android 手機(jī)
Adb 驅(qū)動
一系列Python相關(guān)的庫
原理說明
將手機(jī)點(diǎn)擊到《跳一跳》小程序界面;
用Adb 工具獲取當(dāng)前手機(jī)截圖,并用adb將截圖pull上來
adb shell screencap -p /sdcard/1.png
adb pull /sdcard/1.png .
用matplot顯示截圖;
用鼠標(biāo)點(diǎn)擊起始點(diǎn)和目標(biāo)位置,計(jì)算像素距離;
根據(jù)像素距離,計(jì)算按壓時(shí)間;
用Adb工具點(diǎn)擊屏幕蓄力一跳;
adb shell input swipe x y x y time
考慮到大多數(shù)的童鞋都是Windows電腦,下面介紹Windows環(huán)境下的操作指南
1. 安裝adb驅(qū)動(搞Android開發(fā)的童鞋請忽略)
下載地址:https://adb.clockworkmod.com/
2. 配置adb的環(huán)境變量
將adb驅(qū)動的安裝目錄(adb.exe所在全路徑)復(fù)制并加入到系統(tǒng)環(huán)境變量Path中,確保在cmd中可以直接運(yùn)行adb命令即可
3. 安裝Python2.7或者3.6,自行決定
下載地址:https://www.python.org/downloads/windows/
4. 配置Python環(huán)境變量
同第二步一樣,將Python的安裝目錄復(fù)制并加入到系統(tǒng)環(huán)境變量Path中,確保在cmd中可以直接運(yùn)行python命令即可
5. 安裝pip并配置環(huán)境變量
下載地址:https://pypi.python.org/pypi/pip#downloads
對于第4步和第5步不清楚的,請點(diǎn)擊這里 https://www.cnblogs.com/yuanzm/p/4089856.html
6. 安裝依賴的庫文件
cmd中 運(yùn)行一下命令即可
pip install -r requirements.txt
步驟
安卓手機(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_junp_auto.py,如果手機(jī)界面顯示USB授權(quán),請點(diǎn)擊確認(rèn)
實(shí)驗(yàn)結(jié)果:
TODO
可以對拉上來的圖片進(jìn)行顏色分割,識別小人和目標(biāo)中心店,這樣就不需要手動點(diǎn)擊自動彈跳。
事實(shí)證明,AI 比人更會玩兒游戲。
北京校區(qū)