Box2d和Libgdx的接触监听器和非活动物体

3

我正在使用Java的libgdx和box2d进行项目开发。

以下是我的程序所做的事情:

_ 当两个夹具之间发生碰撞时,将其中一个夹具的身体设置为非“活动”状态

   myBody.setActive(false);

问题:

我注意到在logcat中,当我放置这行代码时,会出现Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1),可能是因为非活动的body仍然在ContactListener中。

我的主程序中只有1个ContactListener类。

如何将Body从ContactListener中删除/添加? 我不知道这是否是解决方案,但我猜想,你能帮我吗?我不知道该怎么解决。

1个回答

4

这是因为监听器中的联系处理发生在world.step内部,而当其运行时,整个world都被阻塞。

例如,您可以将其添加到列表中,在world.step结束时将其设置为非活动状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接