碰撞箱API添加更多实用的碰撞箱
碰撞箱API
为Minecraft添加更多常用碰撞箱
- 方向包围盒(OBB)
- 球体(Sphere)
- 胶囊体(Capsule)
- 射线(Ray)
- 复合碰撞箱(Compound)
- 可将多个碰撞箱组合成一个
- 可嵌套复合碰撞箱
链接
如何使用
在任何需要进行碰撞检测的地方新建一个碰撞箱对象,并通过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 |
注:得分越高,性能越好。旋转意为碰撞箱旋转后重新计算相关向量。
讨论
评测
反馈



资源信息