自动玩微信“跳一跳”的python工具,支持失败后自动重新开始游戏,enjoy~
详细代码请见:https://github.com/zxlchina/jump_player 贴一下目前的成绩~
基本原理
- 利用adb获取屏幕信息
- 利用python下opencv库的模板匹配、边缘提取、水漫法提取跳跃的起点、终点坐标
- 计算跳跃的像素距离,再将其转化为按压时间
- 最后通过adb控制手机运动。
这里重点说下第二步骤,获取起点、终点坐标
1、模板匹配,获得小人的位置,做固定偏移即可得到起点,如图红星所示
2、边缘提取,从上往下扫描,得到顶点坐标
3、对边缘做扩散,防止有小的缝隙,并得到顶点向下偏移一定值的种子坐标,如图红星所示
4、以种子点为基础,用漫水法得到连通区域,并计算区域的中心点,为目标点,如图蓝星所示
运行环境
- python3.5
- adb, 将源文件中的“/Users/lichzhang/Library/Android/sdk/platform-tools/adb”修改为本机adb路径
- opencv、numpy、matplotlib
- 第285行的距离到按压时间的调整系数 w 需要根据自己的机型做调整
© 著作权归作者所有
文章评论(1)
Good article. I definitely appreciate this website.
Keep writing! https://ilconte1958.wordpress.com/2018/02/28/28-febbraio-2018/