微信小游戏跳一跳辅助(c#)
https://github.com/crucialize/Jumping/releases/
- 现在版本只支持1920x1080的分辨率
- 需要.Net Framework >= 4.6 ,Win10自带,XP没救,Win7请去微软官方网站下载:www.microsoft.com/zh-cn/download/details.aspx?id=53344
- 需要adb,请下载adb shell:http://adbshell.com/upload/adb.zip
- 将adb.zip解压放在 C:\adb\ 下
- 打开USB调试,预先连接电脑,在手机上的对话框中授权调试
- 确保手机没有通知消息的打扰(以防影响画面)
- 打开跳一跳,并点击开始游戏
- 打开程序,然后就没你什么事了
- 如果你进步的太快,微信会拒绝接受你的此次成绩
- 程序目录中的log文件夹存放的是截图,收集截图有利于bug的消灭。截图会占用空间,你可以手动清理。如果某一步条失败了,请将失败的那一步原图(xxx.png)以及(xxx_modified.png)发给我。2751167151@qq.com
ColorDiff=|R1-R2|+|B1-B2|+|G1-G2|
棋子是紫黑色的,所以,
- 找到所有和紫黑色相近的点(相近,ColorDiff<=...)
- 寻找聚类中心,即重心,运用重心公式:x=平均x,y=平均y
- 发现聚类中心向下偏移几十个像素即为棋子的脚
- 我们发现,所有方块的中心几乎在两条直线上(回去加图)
- 从x=0,x=1079发出两条直线,碰到第一个颜色突变(突变,Diff(last,now)>...)的点可能目标方块的边缘(称为可疑点)。说明:可疑点可能是目标方块的边缘,也可能是棋子,也可能是脚底下的方块。
if 起始点.X 与 中线(1080/2) 不太相近: if 起始点 在 左边: 应该往 右 跳 if 起始点 在 右边: 应该往 左 跳 else if 存在可疑点P,使P.X太接近 起始点.X: 不选P点作为目标点
所以,目标点是目标方块边缘。不求中心,只求跳到边缘。
我没有采用Dist(S,T),而是采用S,T点以某个斜率k作直线,直线间距。
按压点随机。按压时间系数自己随便调的。