前言
首先声明,此文仅用于技术交流,若用于牟利,后果自负!由于这个小游戏高分者可获得实体奖励,通过外挂作弊取得高分获取奖励实属诈骗,相信游戏团队也有辨别作弊的实力,请大家不要拿自己的信用作赌注,三思后行!
正文
最近,相信大家也被《疯狂足球》这个小游戏刷屏了,得分前三名送手机啊,再便宜也要上千块一部吧。我也玩了几天,得分最高只能取得280分,再也上不去了。看来我还是不适合玩游戏,我还是回归本行继续写我的Bug吧…  ̄□ ̄||
所以,就有了今天的这篇分享…
言归正传,我们开始分析游戏。这个游戏和微信《跳一跳》的玩法很相识,都是用按压的时间长度来控制力度。但是《疯狂足球》还得控制方向,就是手指按下时的点指向手指抬起时的点。
力度控制
按压的时间非常好控制,都是同一个值,触摸屏幕固定的毫秒数后力度会达到正中间,这样我们就能保证力度控制不会失误了。
方向控制
方向控制就稍微麻烦了点,我们可以通过判断截图的像素来获取球门的位置;也可以在球门位置上加一层透明的窗口,手动指示球门的位置;甚至可以人肉计算球门的位置,这个就看大家喜欢了。
实现
知道了按压时间、球门位置,再通过人肉测量足球的初始位置,那实现简直不是事。Swipe就可以搞定了。
假设球的初始位置是x:100,y:200
球门的位置是x:300,y400
按压时间250ms
那么实现代码为:
adb shell input swipe 100 200 300 400 250
搞定!So easy!终于可以像姚明一样踢足球了!
等等!~好像哪里不对!
如果这样做的话,我们每次踢球都是划出一条完美的直线,如果防作弊系统记录了我们的触摸坐标,我们岂不是一秒就被红牌警告?
所以不行,我们还得想想办法解决这个问题。
手指触摸移动坐标问题
要解决这个问题,我们还得模拟出真实的手指触摸移动坐标,试问生成技术哪家强?出门左拐找Deep Learning。但是生成模拟坐标我们需要大量的训练数据啊,数据去哪里找?所以,生成模拟坐标这一项我们就放弃吧…
既然无法模拟,那我们就用真人手指去操作吧。那么问题又