我目前正在使用Box2d和Libgdx进行一场小游戏。每个敌人都是一个box2d动态的身体,他可以杀死所以当他死了我移除他的身体所以:
{% if isLoggedIn %}
<!-- Your dropdown menu HTML here -->
{% endif %}
在我的播放器上确实有效,即使我杀了一个有效的敌人。但有时它会因此错误异常突然崩溃:
body.setUserData(null);
gameScreen.lightManager.world.destroyBody(body);
知道它崩溃的原因吗?这个表达意味着什么? O.o
答案 0 :(得分:1)
你必须确保在世界步骤中没有从世界中移除身体 - 在你的应用程序的某个异步位置处理移除正文时,可能会发生这样的情况。
如果你无法避免处理这种异步,最简单的避免这种情况的方法是设置Body一些UserData,它将识别要销毁的物体并在world.step()
调用后直接销毁它们 - 所以而不是{{1}只是做
remove()
然后在您的body.setUserData("DESTROY");
方法
render