开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[游戏相关] 爆炸时实体加速度如何计算

 发表于 2024-7-31 18:21:40|显示全部楼层|阅读模式 IP:0
200铁粒
本帖最后由 fallingCB 于 2024-7-31 18:35 编辑

java1.20.1
最近在研究tnt炮之类的机器
wiki上是这么说的:
下文以d表示实体到爆炸中心的距离,α表示爆炸接触率(见下文),m表示所有盔甲的最大爆炸保护魔咒等级。爆炸会对实体造成以下效果:
  • 对于每个距离爆炸中心爆炸伤害半径r=2P之内的实体,定义爆炸冲击力:F=(1−dr)α
  • 对实体造成的伤害为⌊7(F2+F)P+1⌋
  • 计算伤害后,爆炸接触率将减小:α1=(1−0.15m)α
  • 实体根据更新后的爆炸接触率沿着从爆炸中心到实体眼睛位置的方向被推动(速度加以α1[需要验证])


  • 在爆炸中心与其100%接触时,实体可获得在单次爆炸(不论爆炸威力)中能获得的最大加速,值为1。

爆炸接触率的计算
  • 实体的边界箱被划分为[注 1]的不等距网格中,l、w、h分别表示边界箱的长宽高。
  • 分别从爆炸中心到网格的每个交点画一条射线。
  • 未被固体方块所阻挡的射线占全部的百分比即为爆炸接触率。
近似算法有采样误差,导致推进力的方向不对称。典型的例子是,一个TNT大炮向西时的射程最大,一部分是因为点燃的TNT在这个方向上采样得到的爆炸接触率能达到最大。[需要验证


所以根据爆炸接触率的计算方式,实体和爆炸中心无任何固体方块阻挡时,若m=0,爆炸接触率=100%=1,实体速度加1,与实体和爆炸中心的距离无关。但我实际测试中,在平地用100个tnt炸1米外的弱加载tnt,测量爆炸的坑的距离,1tick后tnt移动了约87.5米;炸2m外的弱加载tnt,移动约75m,和上述我的从wiki得出的结论不符合。

所以是我的推断、测试有什么问题,或者wiki错了吗?
求大佬解释一下或者给一个公式


苦力怕论坛,感谢有您~

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-6-24 15:14

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4