Box2D移动物体碰撞时会移动到其他位置

时间:2019-06-01 22:36:59

标签: java libgdx

我有两个身体,一个动态身体和一个运动身体。当它们相互碰撞时,我想改变运动机构的位置。我添加了一个Contact Listener,并且能够检测到冲突。但是当我想改变运动机构的变形时,我的游戏便崩溃了。 我真的很感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您遇到的问题是,您正在尝试在物理处理过程中移动对象。 Box2D不喜欢在物理处理过程中(例如,在碰撞过程中)移动或更改对象

为了解决这个问题,必须为碰撞对象设置一个标记,然后在完成物理操作后将其移动。

例如

with open('user_data_dump') as f:
    seen = set()
    for line in f:
        line_lower = line.lower()
        if line_lower in seen:
            print('True')
            break
        else:
            seen.add(line_lower)
    else:
        print('False')

然后添加

// during physics processing
@Override
public void onCollision() {
    //add body to array of objects to move
}