手把手教你用 node 玩跳一跳

Rememberautumn發表於2018-01-02

github: github.com/aOrz/wx_jum…

實現原理:

用 adb,將手機截圖,並傳輸到電腦上,將圖片載入到 canvas 中,通過 getImageData,獲取到圖片的資料,將 rgb顏色轉為 255 的色值,形成一個二維陣列,這樣我們就可以用顏色點陣來表示圖片了,重點來了,然後呢?

匹配跳躍點

棋子:小人顏色是固定的,找到小人的色值之後,我們就可以匹配到小人的底部,得到小人的座標

棋盤:

棋盤的匹配有些複雜,棋盤的形狀不規則,還有陰影,除了棋盤頂部還有左側和前側的檢視。

  1. 剛開始,希望可以通過一行一行的掃描,找到棋盤最寬的地方,從而找到棋盤的 x 座標,無奈,失敗,可能有陰影的地方最寬,然後就跑偏了。

  2. 想通過顏色的多少來區分是不是棋盤,顏色面積大的,肯定是背景色或者其他,可惜,界定沒那麼明顯失敗。

  3. 還是橫向掃描棋盤,掃描到之後,判斷長度達到棋子寬度的1.5倍之後,就停止鄉下掃描,獲取到棋盤的點。

起跳:

獲取到棋子和棋盤的座標,計算兩點之間的距離,然後乘以係數,就可以算出按壓時間啦!使用 adb 就可以傳送長按指令了哦~

相關文章