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

标签 ios cocos2d-iphone box2d box2d-iphone

我正在iPad上开发一个小型应用程序,用户可以在其中将对象拖动到一起。当物体接触时,我将创建一个将物体粘在一起的距离关节。一切正常。

如果用户再次触摸该对象以将其拖动,则我希望能够单独移动该对象,而不是将关节中的所有对象一起移动。我已经编写了以下代码,但实际上并没有用:

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

有什么建议么?

GA

最佳答案

迭代关节列表时不要移除关节。因为当删除关节时-列表将更改,并且您的迭代器将变得无效。将关节​​保存到阵列中,然后在遍历阵列时将其删除。

关于ios - 在box2d中制动对象中的所有关节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287784/

相关文章:

cocos2d-iphone - 如何保存我在cocos2d中玩过的名字、分数和等级

java - 如何将动画应用到 box2d 主体?

java - 在 Libgdx 中设置相机旋转

ios - 键盘和 UI 元素高度的自动布局问题

ios - 在 iOS App 中从 http 切换到 https 会在发布时出现导出合规性问题

ios - 在 Storyboard 中为 TableView 实现一个事件指示器

iphone - XCode- "Previous frame inner to this frame (gdb could not unwind past this frame)"

ios - 从 2 个位置获取角度

c - 在 ARMv7 上分析 clutter-box2d 应用程序

ios - 正确的 Realm 使用模式/最佳实践?