在运行时更新物理体的掩码位不起作用 ANDENGINE

Updating maskbit of a physics body in runtime not working ANDENGINE

我正尝试在 andEngine 中开发类似 run! black and white 的游戏。 如果您查看游戏,平台掩码位会在运行时发生变化。

为了达到这个效果,我试图在运行时更改每个平台掩码位,就像这样。

Filter filter1 = new Filter();
                    filter1.maskBits = CATEGORYBIT_NOT_COLLIDE; 
                    single_divider.physics_body.getFixtureList().get(0).setFilterData(filter1);

但平台掩码位不会在运行时更改。 我不知道似乎是什么问题。我认为物理体的过滤数据需要在设置新的过滤数据之前重置。但是我不知道怎么办。

如果有人能指导我正确的方向。

如果你想暂时关闭碰撞,更好的办法是使用setSensor()方法

    single_divider.physics_body.getFixtureList().get(0).setSensor(true);

传感器是一种检测碰撞的固定装置,因此您仍然可以在碰撞侦听器中处理它们,但物体不会发生碰撞。 Read more here

当然你也可以打电话

    single_divider.physics_body.getFixtureList().get(0).setSensor(false);

关闭传感器(因此再次打开碰撞)