问题描述
我正在尝试开发类似的游戏 andEngine中为 。 如果您看游戏,平台掩码位会在运行时更改。
为了达到这种效果,我试图在运行时更改每个平台的掩码位,类似这样。
Filter filter1 = new Filter();
filter1.maskBits = CATEGORYBIT_NOT_COLLIDE;
single_divider.physics_body.getFixtureList().get(0).setFilterData(filter1);
但是平台的屏蔽位在运行时不会改变。 我不知道这是什么问题。 我认为物理机体的过滤器数据需要在设置新的过滤器数据之前重置。 但是我不知道如何。
如果有人可以引导我正确的方向。
1楼
如果要暂时关闭碰撞,最好的方法是使用setSensor()方法
single_divider.physics_body.getFixtureList().get(0).setSensor(true);
传感器是一种可以检测碰撞的固定装置,因此您仍然可以在碰撞侦听器中处理它们,但是物体不会碰撞。
当然你也可以打电话
single_divider.physics_body.getFixtureList().get(0).setSensor(false);
关闭成为感应器(因此再次打开碰撞)