源碼在這里:https://github.com/Shu-Ji/wechat_micro_jump_game_hero

普通版本

優(yōu)化版本
調(diào)試時,修改 debug 為 True,真實(shí)運(yùn)行時,設(shè)置為 False。停頓時間設(shè)置為 1s,如果電腦運(yùn)算速度太快,保險起見可以設(shè)置為 2s。
第一版使用垂直投影圖的方案進(jìn)行目標(biāo)查找,結(jié)果不是太準(zhǔn)備;
第二版改為直接去除背景,以達(dá)到二值化。
第三版去除背影的方式,太慢了,現(xiàn)在不去除背景,直接找極點(diǎn),非常迅速!
目前以 距離 x 1.5 作為長按時長,基本能跳到目標(biāo)中心位置。
原理:
- adb 截圖
- 找到小人臀部坐標(biāo)(hsv 色相紫黑色)
- 將背景(取高度在1/3處點(diǎn)的色相為基準(zhǔn))替換為黑色,其余替換為白色,進(jìn)行二值化處理。
- 找到下一橋墩的頂點(diǎn)坐標(biāo)
- 找到下一橋墩的極左/極右點(diǎn)坐標(biāo)
- 計算出下一橋墩的中心點(diǎn)坐標(biāo)
- 從小人臀部到下一橋墩中心點(diǎn)計算出跳遠(yuǎn)距離
- 將距離換算為長按時長
- 使用 adb 跳
視頻:
http://v.youku.com/v_show/id_XMzI3NjY5NjI5Mg==.html?spm=a2h3j.8428770.3416059.1