微信跳一跳外挂
实现原理
- adb截图命令
- 接收图片
- 找到起点
- 找到目标点
- 计算距离
- 计算按压时间
- adb命令输出
算法详解
adb命令这里就不赘述了,相关请自行百度。起点算法
获取小人的RGB域12345678910111213141516171819202122232425262728293031323334353637func getGuyPosition(m image.Image) (x, y float32) {maxX := m.Bounds().Max.XmaxY := m.Bounds().Max.YlenOut, startOut, outJ := 0, 0, 0error := float64(1560)for j := 600; j < maxY; j = j + 2 {//跳动人的RGBvar zeroPointR, zeroPointG, zeroPointB = uint32(54*256), uint32(52*256), uint32(92*256)end, start := 0, 0isBackground := truefor i := 0; i < maxX-1; i++ {//当前像素点RGBr, g, b, _ := m.At(i, j).RGBA()//跳动小人的RGB判断范围误差10个色度if abs(r-zeroPointR) < error && abs(g-zeroPointG) < error && abs(b-zeroPointB) < error {if !isBackground {end = iif end-start > lenOut {lenOut = end - startstartOut = startoutJ = jisBackground = truebreak}}} else {if isBackground {start = iisBackground = false}}}}x = float32(startOut + lenOut/2)y = float32(outJ)return}
终点算法
通过大量截图可发先,从上到下终点目标块总是在最上面的,所以把目标可以明确为找出第一块的中心点坐标即为终点坐标
从左到右扫描

避开影音干扰,代码实现:
|
|
从右到左扫描

规避小人干扰,代码实现:
|
|
干扰规避
- 人物干扰
- 阴影干扰
- 花纹干扰
- 渐变干扰
github地址:https://github.com/Callmedachang/jumponejump