用 PHP 来实现微信跳一跳

作为一个程序员,当微信出了跳一跳后,排行榜的前三名就没有低于 1k 分的,我甚是伤心,所以 php 也要来跳一跳,今天发出来的版本貌似已经是第五版了,每天晚上都回家写一个方法,分数越来越高,到了现在,运行速度和分数都已经让我满意了。刚才打的最高分。

github 地址: https://github.com/crazyhl/php_jump_auto

跳跃过的高分
file

下面说一下实现的思路,先用 adb 截图,然后再这个截图上寻找小人的位置,以及需要跳跃到的方块的位置,最后再利用 adb 模拟长按跳过去就行了。

分开说下,如何找小人。利用先确认一个小人身上的色块的色值,然后在再整图上找这个色值区间值的一个范围。

如下图
file

再调整色块值之后,我觉得这个范围比较合适,所以我就定了下来,然后再计算这个范围的中心点,当做小人的中心点。

然后再去寻找需要需要跳跃的目标,这里有个优化后的方法,首先我们确认了小人的位置,然后就搜索半张图就可以了,然后寻找两个点,跟标准值差异的最高点以及最右的一个点,为什么不寻找左侧点,是因为有阴影会影响搜索的。

等找到最高点和最右点之后,取两个点的交点就确认跳跃的目标点了。

这样人物点位和目标点都确认好了,然后利用勾股定理就可以计算出来距离了。这个距离跟最终的长按时间是有一个比例了,这个比例自己测一测就能大概找出来了。

这样,一个跟 php 没有太大关系的辅助就成了,最后,铺天盖地求 star