微信小遊戲跳一跳外掛輔助程式

書記的馬甲發表於2019-03-02

原理說明

計算

除錯時,修改 debug 為 True,真實執行時,設定為 False。停頓時間設定為 2s,如果電腦運算速度太快,保險起見可以設定為 2s。

原理

  1. adb 截圖
  2. 找到小人臀部座標(hsv 色相紫黑色)
  3. 找到下一橋墩的頂點座標
  4. 找到下一橋墩的極左/極右點座標
  5. 計算出下一橋墩的中心點座標
  6. 從小人臀部到下一橋墩中心點計算出跳遠距離
  7. 將距離換算為長按時長
  8. 使用 adb 跳

更新日誌

2018-01-01

目的只是找到極點,並不需要二值化,去除相關程式碼。速度快。

目前以 距離 x 1.5 作為長按時長,基本能跳到目標中心位置。

2017-12-30

去除垂直投影圖的方案,使用直接識別背景的方式去除背景,並二值化,以誤別“極點”。速度仍然慢。

2017-12-29

第一可用版本,準確性不高,速度慢,使用垂直投影圖進行目標查詢。

開發環境搭建

系統環境

筆者環境:

$ uname -a
Darwin rmbp-finn.lan 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64

$ python --version
Python 2.7.10

$ 測試機
小米5
複製程式碼

安裝 Python 2.7

略。

(可選安裝) virtualenv, virtualenvwrapper

略。

安裝 adb

略。

工程搭建

先 fork 一份到自己賬戶。然後:

$ mkvirtualenv wechat_micro_jump_game_hero
$ cdvitualenv
$ git clone ...
$ cd wechat_micro_jump_game_hero
$ echo `pwd` > ../.project
$ pip install pipenv
$ pipenv install
複製程式碼

手機連上電腦,開啟跳一跳小遊戲,並點選開始,之後:

$ python main.py
複製程式碼

演示視訊:sanhaolu.com/p/33251

原始碼在這裡:github.com/Shu-Ji/wech…

相關文章