微信跳一跳外掛(純學(xué)習(xí)研究)

一船惨、梳理

跳一跳的游戲可以細(xì)分為兩步驟:距離判斷 + 按壓模擬,這兩步都有下面這些解決方案:

1祷舀、距離判斷:

● 簡(jiǎn)單方案:像素點(diǎn)判斷

● 進(jìn)階方案:OpenCV 圖像分析

2、按壓模擬:

● 簡(jiǎn)單方案:adb/wda 指令

下面逐一介紹這里的實(shí)現(xiàn)方法儡首,非常有意思。

二偏友、距離判斷

1. 像素點(diǎn)判斷

該方法采用自目前最火的跳一跳小游戲「輔助程序」:wechat_jump_game蔬胯。

如上圖所示,我們先定義了「棋子」和「棋盤」位他,需要找到的兩個(gè)目標(biāo)點(diǎn)用橙色點(diǎn)標(biāo)注氛濒,首先針對(duì)棋子的目標(biāo)點(diǎn)的判斷,可以這么做:

相關(guān)代碼:

而針對(duì)棋盤中心點(diǎn)的確認(rèn)的思路則是這樣的:

當(dāng)然還有一些其他方法來盡量縮小棋盤中心點(diǎn)的檢測(cè)區(qū)域鹅髓,這里簡(jiǎn)單介紹下:

當(dāng)然舞竿,如果恰好跳到中心點(diǎn),下一個(gè)棋盤中間會(huì)有白色點(diǎn)窿冯,則可以直接匹配中心點(diǎn)的色值骗奖,得到棋盤中心點(diǎn),這種情況基本百發(fā)百中:

相關(guān)代碼:

但棋盤種類比較多醒串,形狀也各異执桌,而且棋盤表面并非純色,還有其他顏色芜赌,所以即使像素判斷的代碼里增加了很多特殊 case仰挣,依舊不能做到非常完美:

總結(jié)一下,目前這個(gè)方案基本沒有太大問題缠沈,但如果跳一跳游戲把背景改成了非線性漸變膘壶,或隨機(jī)飄落一些物體,或棋盤表面更加復(fù)雜洲愤,那這里的算法就基本不可用了颓芭。

2. OpenCV 圖像分析

基于像素點(diǎn)的判斷低效而且不夠健壯,而利用 OpenCV 計(jì)算機(jī)視覺庫則可以從圖像分析層面進(jìn)一步簡(jiǎn)化判斷邏輯提升效率柬赐,首先采用該方法的跳一跳小游戲「輔助程序」來自 wechat_jump_jump亡问。它是這么得到棋子的位置的:

相關(guān)代碼:

接下來找棋盤的中心點(diǎn),假如下一個(gè)棋盤存在白色的示意點(diǎn)躺率,同樣采用上面的模板匹配方法進(jìn)行匹配玛界,若匹配不上(匹配值小于某閾值万矾,也許下個(gè)棋盤本身就是白色悼吱,所以灰度圖分辨不出),則采用第二種方案:

這里是否準(zhǔn)確的精髓就在于高斯濾波去除圖像噪音的臨界點(diǎn)以及 Canny 函數(shù)中閾值的設(shè)定良狈,需要不斷調(diào)整參數(shù)到最優(yōu)狀態(tài)后添。

相關(guān)代碼:

三、按壓模擬

1. adb/wda 指令

這兩個(gè)分別是針對(duì) Android 和 iOS 的命令行工具薪丁,可以將手機(jī)和電腦連接起來遇西,并通過命令行發(fā)送指令馅精,指令中就包含了屏幕的截圖和按壓模擬。不過 iOS 配置起來稍微麻煩一點(diǎn)粱檀,具體操作指引可以參考 這里洲敢。其核心的命令有:

當(dāng)然,如果嫌配置麻煩茄蚯,還可以通過 Android 的 AirDrop App 或 iOS 的 QuickTime 把手機(jī)屏幕投到電腦中压彭,然后通過 Python 的 Pillow 庫來截取投屏的內(nèi)容,再做進(jìn)一步的圖像識(shí)別工作渗常。

還有一點(diǎn)值得一提壮不,按壓時(shí)間這部分還是有優(yōu)化的空間,前面提到了跳躍距離和按壓時(shí)間基本是線性關(guān)系皱碘,但越到后面可以越發(fā)現(xiàn)询一,距離并非和按壓時(shí)間絕對(duì)成線性比例,因?yàn)橛螒虮旧聿皇且粋€(gè)純 2D 的平面場(chǎng)景(2.5D)癌椿,所以我們測(cè)量到的直線距離在 2.5D 場(chǎng)景中是有變化的健蕊,雖然影響不大,但在游戲后期棋盤越來越小踢俄,距離越來越大時(shí)绊诲,容易凸現(xiàn)出問題來,所以關(guān)于距離的計(jì)算有幾種不同的解決:

擬合函數(shù)的細(xì)節(jié)可以參考:

1)https://github.com/metowolf/JumpJumpHelper

2)https://github.com/wangshub/wechat_jump_game/issues/744

3)https://github.com/wangshub/wechat_jump_game/pull/841



四褪贵、最后

反對(duì)一切使用外掛行為掂之!

反對(duì)一切使用外掛行為!

反對(duì)一切使用外掛行為脆丁!

通過對(duì)外掛程序源碼的研讀世舰,學(xué)習(xí)到了非常多創(chuàng)新的思維,這也算是外掛留給代碼世界的果實(shí)槽卫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末跟压,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子歼培,更是在濱河造成了極大的恐慌震蒋,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躲庄,死亡現(xiàn)場(chǎng)離奇詭異查剖,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)噪窘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門笋庄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事直砂【剩” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵静暂,是天一觀的道長(zhǎng)济丘。 經(jīng)常有香客問我,道長(zhǎng)洽蛀,這世上最難降的妖魔是什么闪盔? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮辱士,結(jié)果婚禮上泪掀,老公的妹妹穿的比我還像新娘。我一直安慰自己颂碘,他們只是感情好异赫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著头岔,像睡著了一般塔拳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峡竣,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天靠抑,我揣著相機(jī)與錄音,去河邊找鬼适掰。 笑死颂碧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的类浪。 我是一名探鬼主播载城,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼费就!你這毒婦竟也來了诉瓦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤力细,失蹤者是張志新(化名)和其女友劉穎睬澡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眠蚂,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡煞聪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了河狐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片米绕。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瑟捣,死狀恐怖馋艺,靈堂內(nèi)的尸體忽然破棺而出栅干,到底是詐尸還是另有隱情,我是刑警寧澤捐祠,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布碱鳞,位于F島的核電站,受9級(jí)特大地震影響踱蛀,放射性物質(zhì)發(fā)生泄漏窿给。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一率拒、第九天 我趴在偏房一處隱蔽的房頂上張望崩泡。 院中可真熱鬧,春花似錦猬膨、人聲如沸角撞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谒所。三九已至,卻和暖如春沛申,著一層夾襖步出監(jiān)牢的瞬間劣领,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工铁材, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尖淘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓著觉,卻偏偏與公主長(zhǎng)得像德澈,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子固惯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 作者:Hahn梆造, 騰訊高級(jí)UI工程師商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系騰訊WeTest獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處葬毫。原文鏈接:htt...
    極樂叔閱讀 388評(píng)論 0 1
  • 其實(shí)也不能說算是外掛吧镇辉,算是個(gè)游戲小助手吧,畢竟不能抓包贴捡,也不能直接修改分?jǐn)?shù)(據(jù)說之前可以直接抓包修改分?jǐn)?shù)忽肛,不過這...
    zhuyuansj閱讀 2,444評(píng)論 5 5
  • 走上大街,隨便拉一個(gè)人問下“你眼中的世界是什么樣子烂斋?”屹逛。估計(jì)多數(shù)人的回答不會(huì)脫離上面這張熟悉不過的地圖础废。也確...
    AaLohchiaoLi閱讀 256評(píng)論 0 0
  • 寒假歸來,周日我們這個(gè)春季學(xué)期的第一堂課首先從春節(jié)的問候語開始罕模,接著我們回顧了西方的圣誕新年假期评腺,一起分享了下面這...
    Lucas88閱讀 158評(píng)論 0 0
  • 恩蒿讥,就是我。 大四抛腕,日語芋绸,長(zhǎng)春 。 有一個(gè)愛好 那就是看書担敌。興奮點(diǎn)永遠(yuǎn)源自文字摔敛。 以后請(qǐng)多多關(guān)照。
    Yitazula閱讀 238評(píng)論 0 2