我正在iPad上开发一个小应用程序,用户可以将对象拖到一起。当物体接触时,我会创建一个将物体粘在一起的距离关节。这很好。
如果用户再次触摸该对象进行拖动,我希望能够单独移动对象,而不是将关节中的所有对象移动到一起。我编写了以下代码,但它并没有真正起作用:
for (b2JointEdge *jointEdge = theBody->GetJointList(); jointEdge; jointEdge=jointEdge->next) {
b2Joint *joint = jointEdge->joint;
_world->DestroyJoint(joint);
}
有什么建议吗?
GA
答案 0 :(得分:3)
迭代联合列表时不要删除关节。因为删除关节时 - 列表会更改,并且迭代器将变为无效。将关节保存到数组中,然后在迭代数组时将其删除。