我正在开发基于Andengine的游戏,而且我遇到了碰撞问题。我有几个sprite类与相应的物理体,我想确保碰撞只发生在特定的身体。让我们说我在我的场景中同时有A B C和D但是我只想为它们中的两个配置碰撞,例如A和C.我该怎么做?
非常感谢您的耐心等待!我会批评任何提示!
答案 0 :(得分:0)
首先,您必须为每种类型的身体设置正确的userData:
bodyA.setUserData("bodyA");
bodyC.setUserData("bodyC");
然后您可以像这样禁用collisision:
List<Fixture> fixtureList = bodyA.getFixtureList();
for(Fixture fixture : fixtureList){
if(fixture.getUserData().equals("bodyC")
fixture.setSensor(true);
}
它将所有夹具连接到bodyA并迭代它们。如果任何夹具的userData设置为“bodyC”,它将禁用它的碰撞检测。您可以通过设置false而不是true来启用它(true表示'禁用碰撞')
可能这不是最好的方法,但它有效。
PS我现在无法测试,所以可能你可能不得不改变一些(添加!= null或其他东西)但是我认为你明白了,你将能够做到这一点:)