我用上千行代码破解了MC中的极限跳!!

Description
特别声明:请勿尝试或指使他人尝试视频中的跳跃!

终于,终于把这玩意整完了!!
个人理论研究巅峰之作
没错,你只需要输入: 助跑长度,助跑的滞空时间,和跳跃的滞空时间,程序就能直接求出距离和容错!
无论是从0.125bm到100bm,还是从平地连跳到1.8bc,所有常规的助跑长度和顶头都可以在这一个程序中计算,并且支持各种不同的半角种类!
不过这期视频只考虑原版,就没放高清修复里快速运算的大半角了,之后可能会单独出一期)

写这玩意花了大概1-2星期,mc的离散运动,移动阻断,浮点误差,不同助跑长度的跳法差异,和各种运动特性使得编写这玩意比想象中的困难很多,mojang不干人事系列(
过程中除了忘记SwingUI去问了下之外,几乎没用到ai,毕竟ai在这玩意上也帮不上什么忙,而且ai也写不出这坨史山一样的代码()
源码已经放在github中:https://github.com/cantnavet/BmSolver
但不建议参考,因为当初计划整这玩意的时候还没学到OOP,代码写的一坨()
个人测试了大量的跳跃暂未发现问题,如发现bug欢迎反馈)
程序求得的解为理论最优解,大多数情况都可以精确至浮点数最后一位精度,不过在面对部分loop和需要规避的移动阻断时,玩家的有效角限制和朝向就可能会使得常规方式寻找到的跳法在接近该解的小数点后7-8位后就很难继续前进
不过程序只能给出一个大概的方向和理论极限值,具体跳法终究得自己找,视频中正片每个跳跃平均都解了至少1小时以上(

另外由于程序求的是绝对的理论极限,即不限loop次数和斜跑次数可以得到的解,但视频中部分跳跃实际上不需要那么多loop和斜跑,所以视频显示出的容错会比程序中算出的更小

关于技跑的一些补充:
视频聊天栏的pb是由mpk mod显示的,在这里就是玩家常说的“容错”,意思是玩家在最优操作时,落地时玩家碰撞箱与方块边缘的距离,通常聊天栏的pb显示的是玩家当次操作差多少能才能到达方块,而在这里操作由宏演示,所以可以直接把聊天栏的pb看成容错
mpk mod为目前圈内最常用的跑酷信息显示模组,视频中x,y,z,facing等信息都由mpk mod显示
下载链接:https://github.com/kurrycat2004/MpkMod

更多信息可以查看mc跑酷wiki:mcpk.miraheze.org/wiki/Main_Page/zh
部分运动代码参考:https://github.com/CyrenArkade/mothball/blob/main/cogs/movement/player.py

感谢@pjx1314  的半角推算程序!

最后,求3连Orz))

补充:感谢pjx的压缩,现在exe程序可以放进蓝奏云力!
https://wwdx.lanzouw.com/iJKv02xrogwf 密码:2333
(希望没bug())

BGM:Rebellion - Juggernaut.