在Filter类中不能使用超过16位

时间:2015-12-05 00:36:51

标签: java libgdx box2d

我需要超过16个类别进行冲突,但不幸的是,Filter类的categoryBits只是一个只有16位的短路。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Libgdx使用Bulletphysics,它对已创建的冲突组过滤器数量有一个已知限制(16位整数)。这种限制是自愿的,因为Bullet的开发人员认为不需要更多的组。

碰撞组是优化的一种方式:它们完全阻止了边界框检查,当然也阻止了触发事件。如果没有组过滤器,您仍然可以通过事件检查碰撞,以确保自己是否要碰撞对象。

这些组只应用于频繁重叠但不应触发碰撞的对象。对于几乎从不重叠的对象,不要使用组,请使用事件检查。

现在,如果确实出于某种原因需要更多群组,那么最好的方法就是创建一个新的物理世界。