嗨,我正在开发一款汽车游戏。在其中我有一个玩家的车和一个敌人的车。我想做的是,在某个特定时间,玩家的车不应该与敌人的车碰撞。为此,我想在运行时更新玩家汽车的maskbit。我已经制作了自定义精灵类,并使用这行代码
mPhysicsWr.getPhysicsConnectorManager()
.findBodyByShape(this)
.getFixtureList()
.get(0)
.getFilterData()
.maskBits=0;
但它仍然没有更新这个精灵的主体的maskbit。 任何的想法..? 谢谢。
答案 0 :(得分:1)
您将需要使用以下方式再次分配过滤器数据:
Filter filter = new Filter();
filter.maskBits = yourMaskBits; mPhysicsWr.getPhysicsConnectorManager().findBodyByShape(this).getFixtureList().get(0).setFilterData(filter);
对于Box2D中的每个Get方法,都有一个相应的Set方法。在API中直接设置属性非常不寻常。大多数时候你会使用getter和setter。