碰撞箱API添加更多实用的碰撞箱
前置库
多人
1.21.1
622025/03/07 03:05:08

碰撞箱API

为Minecraft添加更多常用碰撞箱

  • 方向包围盒(OBB)
  • 球体(Sphere)
  • 胶囊体(Capsule)
  • 射线(Ray)
  • 复合碰撞箱(Compound)
    • 可将多个碰撞箱组合成一个
    • 可嵌套复合碰撞箱

链接

McMod CurseForge Modrinth

如何使用

在任何需要进行碰撞检测的地方新建一个碰撞箱对象,并通过ColliderUtil里的方法来判断是否发生碰撞。

对于实体(Entity),可以通过附加HitboxDataAttachments#COLLISION 来实现碰撞箱的缓存。通过此缓存的碰撞箱可以通过F3 + B
打开碰撞箱渲染。注意,该Data无持久化实现。

性能

测试方式

  • JMH Benchmark

测试环境

  • CPU:AMD R5 5600G
  • 内存:32GB
  • JDK:Microsoft OpenJDK 21.0

测试设置

  • 预热轮次:5
  • 测试轮次:5

测试项目

  • 同种碰撞箱碰撞判定
碰撞箱 得分 误差 单位
轴对齐包围盒 3561837865.930 ± 157982649.213 ops/s
胶囊体 22350681.198 ± 238993.658 ops/s
胶囊体(旋转) 16842309.523 ± 103959.918 ops/s
方向包围盒 5528493.224 ± 64548.996 ops/s
方向包围盒(旋转) 4648963.750 ± 111369.535 ops/s
球体 119556589.705 ± 1711146.560 ops/s

注:得分越高,性能越好。旋转意为碰撞箱旋转后重新计算相关向量。

支持作者,获得更多创作动力!

讨论
评测
反馈
资源信息
授权协议
GNU 通用公共许可证 3.0
发布时间
2025/02/03 02:37:31
最后更新
2025/03/07 03:05:08
加载时间比预期的要久,也许需要刷新一下?