用 PHP 来实现微信跳一跳

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

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

跳跃过的高分
file

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

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

如下图
file

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

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

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

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

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 6年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 16
Summer

PHP 在此处有着不可或缺的作用 :smiley:

6年前 评论
hezhizheng

不会用ADB 实际的操作能说一说吗?

6年前 评论

@hezhizheng 在代码里面,就是用了 adb shell screencnp 截图和 adb input swip 来模拟长按,仅仅这两个命令而已。更多的可以百度一下,会有更详尽的说明

6年前 评论

我只想知道 ios行吗

6年前 评论

@keer 我这只有安卓手机,贫困闲置了我的思考能力

6年前 评论
Aaron

file
楼主,为什么我的老是跳不准确呢? 压制值 我从0.5到50都调整过。感觉没有效果

6年前 评论
xuding

弱弱的问一下,这个怎么用

6年前 评论

@XuDing 把整个项目 clone 下载,php 执行 php_jump_auto 就可以了

6年前 评论

@Aaron 用的可是我的版本?如果是我的版本可以把注释打开,然后看看扫描到的任务和目标点定位都是否准确 ,如果准确,就可以调整比例值了

6年前 评论
PHPSIX

@M1racle 完了,看了你的代码,真不好意思说自己是干PHP的,求大神这个东西怎么用?苦恼啊!

6年前 评论

@PHPSIX 我也很菜啊,这个代码就跟我最后说的一样,这个代码的确跟 php 没有什么太大的关系,就是简单的调用了 exec 执行 shell 命令,然后利用图片库找色的原理。这个代码只适用于安卓,苹果暂时不支持,主要是手里没有相关设备,最重要是对于苹果不熟悉。如果是安卓手机,参照github的说明使用即可

6年前 评论

游戏还好,就是没时间玩

6年前 评论
PHPSIX

@M1racle 谢谢

6年前 评论
Ysll

666666

6年前 评论
Ysll

厉害的

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!