在box2d中制动对象中的所有关节

时间:2013-10-10 05:32:08

标签: ios cocos2d-iphone box2d box2d-iphone

我正在iPad上开发一个小应用程序,用户可以将对象拖到一起。当物体接触时,我会创建一个将物体粘在一起的距离关节。这很好。

如果用户再次触摸该对象进行拖动,我希望能够单独移动对象,而不是将关节中的所有对象移动到一起。我编写了以下代码,但它并没有真正起作用:

for (b2JointEdge *jointEdge = theBody->GetJointList(); jointEdge; jointEdge=jointEdge->next) {
    b2Joint *joint = jointEdge->joint;
    _world->DestroyJoint(joint);
}

有什么建议吗?

GA

1 个答案:

答案 0 :(得分:3)

迭代联合列表时不要删除关节。因为删除关节时 - 列表会更改,并且迭代器将变为无效。将关节​​保存到数组中,然后在迭代数组时将其删除。