python实现自动玩跳一跳小游戏

February 25, 2018 1 条评论 2.57k 次阅读 1 人点赞

自动玩微信“跳一跳”的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)

  • https://ilconte1958.wordpress.com/2018/02/28/28-febbraio-2018

    Good article. I definitely appreciate this website.
    Keep writing! https://ilconte1958.wordpress.com/2018/02/28/28-febbraio-2018/

    March 1, 2018