用 PHP 来实现微信跳一跳
18

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

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

跳跃过的高分
file

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

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

如下图
file

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

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

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

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

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

本帖由 Summer 于 9个月前 加精
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 16
Summer

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

9个月前

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

9个月前

@Summer 此处纯胶水作用

9个月前

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

9个月前

我只想知道 ios行吗

9个月前

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

9个月前
Aaron

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

9个月前
xuding

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

9个月前

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

9个月前

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

9个月前
PHPSIX

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

9个月前

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

9个月前

游戏还好,就是没时间玩

9个月前
PHPSIX

@M1racle 谢谢

9个月前

666666

9个月前

厉害的

9个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!