Java Can';t在筛选器类中使用的位数不能超过16位

Java Can';t在筛选器类中使用的位数不能超过16位,java,libgdx,box2d,Java,Libgdx,Box2d,我需要16个以上的类别用于冲突,但不幸的是,筛选器类的categoryBits只是一个只有16位的短类别。如何解决这个问题?Libgdx使用Bulletphysics,它对您可以创建的冲突组筛选器的数量(16位整数)有已知的限制。这个限制是自愿的,因为子弹的开发者认为不需要更多的组。 碰撞组是一种优化手段:它们完全阻止边界框检查,当然也阻止事件触发。如果没有组过滤器,您仍然可以通过事件检查碰撞,以确定对象是否要碰撞 组应仅用于频繁重叠但不应触发碰撞的对象。对于几乎从不重叠的对象,不要使用组,请在

我需要16个以上的类别用于冲突,但不幸的是,筛选器类的
categoryBits
只是一个只有16位的短类别。如何解决这个问题?

Libgdx使用Bulletphysics,它对您可以创建的冲突组筛选器的数量(16位整数)有已知的限制。这个限制是自愿的,因为子弹的开发者认为不需要更多的组。 碰撞组是一种优化手段:它们完全阻止边界框检查,当然也阻止事件触发。如果没有组过滤器,您仍然可以通过事件检查碰撞,以确定对象是否要碰撞

组应仅用于频繁重叠但不应触发碰撞的对象。对于几乎从不重叠的对象,不要使用组,请在事件中使用复选框


如果你真的因为某种原因需要更多的小组,最好的方法是创建一个新的物理世界。

因为问题被标记为box2d,我认为他没有使用子弹包装器。对,Box2D的答案可能也是正确的,因为物理引擎背后的原理是相同的。虽然我没有像Xoppa提到的那样使用子弹包装器,但Guillaume提到我的所有碰撞都不需要组,这是正确的。我将使用
beginContact()
方法来比较碰撞的对象,而不是它们的位。