当前位置: 代码迷 >> Android >> 在运行时更新物理物体的maskbit无法正常工作
  详细解决方案

在运行时更新物理物体的maskbit无法正常工作

热度:59   发布时间:2023-08-04 10:02:53.0

我正在尝试开发类似的游戏 andEngine中为 。 如果您看游戏,平台掩码位会在运行时更改。

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

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);

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

当然你也可以打电话

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

关闭成为感应器(因此再次打开碰撞)

  相关解决方案