from : https://www.52pojie.cn/thread-682631-1-1.html
工具下载 https://www.52pojie.cn/thread-682011-1-1.html
开源网址 https://github.com/Charltsing/WeChat-Jump-JumpSharp
原理说明:
- 打开手机的USB调试功能(部分手机需要再打开USB调试的安全模式,允许模拟按键)
- 使用谷歌的安卓调试工具ADB完成截图和模拟按键 命令 检测设备 shell getprop ro.product.model 获取手机分辨率 shell wm size 截图到控制台 shell screencap -p 模拟发送按键 shell input swipe 100 100 200 200 时间
- 定时器循环抓图
- 判断小黑人的脚下位置(g == 55 && r + b > 145 && r + b < 148)
- 等待右键指示要跳跃的终点坐标。计算两点之间的距离,转成按键时间,发送按键。
- 坐标换算要考虑手机分辨率和图像控件分辨率。不同品牌的手机可能还要乘个时间系数。具体自己调试。
代码难点:
- 手机参数设置
- 截图的png不要写到硬盘上,要直接读控制台,这样速度会快得多。控制台返回的数据需要将0D0D0A替换成0A才是png图片
- 如果希望自动跳跃的话,需要判断棋子位置,一般做法是从上至下扫描,得到最高点和左右至少一点即可计算出中心点。
- 如果ADB和USB调试都正确但检测不到手机,请自行百度方案,可能需要修改adb的配置,因为个别手机没给谷歌注册,所以不支持。
操作注意事项
- 确认ADB工作正常,如果5037端口被占用,要杀掉占用的进程,否则ADB不工作。
- USB调试功能不同的手机位置不一样,请自行百度。部分手机需要再打开USB调试的安全模式,允许模拟按键。
- 程序运行不正常的话,请在DOS窗口手工测试ADB命令,正常之后再考虑修改代码。
有其他问题,欢迎交流。