微信小游戏 跳一跳 刚推出 ,不错,简单 好玩!
但是程序员最烦的就是一直重复做一件事情,所以,能不能自动跳一跳?
元旦放假,研究了一下,具体思路分享给大家。
先上图
图像识别和处理使用的是opencv
左图为使用opencv提供的 akaze算法实现的图片特征点匹配
右图为自动识别边线,并计算最大矩形框
按压时间T自动获取实现:
- 通过特征点匹配,识别出小人的中心点位置:A
- 通过识别框线找出小人上面最大矩形框中心点的位置:B
- 通过上面的位置计算出小人即将跳出的距离S=A->B
- 通过测试计算出按压屏幕的时间T=X*S,X为不断测试得出
Android后台自动点击和屏幕截图App实现(无需root):
- App启动后,启动一个前台服务,用户可以在通知栏操作是否开启自动跳
- 用户打开跳一跳 App在后台使用 MediaProjection API 截取手机屏幕
- 通过上文方式对图像识别获取按压时间T
- App使用instrumentation后台发送点击屏幕动作持续时间为T
至此,整个App的实现方式已介绍完。
非root方式发送屏幕触摸事件比较困难,研究中。。。,可能需要每种手机的rom编译一个apk包
跳一跳有个漏洞,可以根据session修改分数,大家可以试试。
App正在测试,完善我会开源给大家使用,谢谢观看!
有问题和交流请送邮件到:gemron@foxmail.com