DestroyJoint函数中的box2dweb问题

时间:2014-04-10 13:49:15

标签: javascript box2d

我的jsfiddle:http://jsfiddle.net/H8e9m/11/

你可以看到当球到达摆锤末端并通过旋转关节与它碰撞时,当按下空格按钮试图让球释放钟摆时会出现问题。

      if (keydown.space) {
        var list = physics.world.GetJointList();
         if (list.GetBodyB().m_userData.details.name=="End")
              physics.world.DestroyJoint(list);
            }

任何人都可以告诉我如何解决这个问题

1 个答案:

答案 0 :(得分:1)

您可以在创建关节时保持对关节的引用:

var myJointDef = new b2RevoluteJointDef();
revoluteBall_jointDef.bodyA = ...
... etc
myJoint = world.CreateJoint(jointDef);

'myJoint'变量应该是全局的,例如。你可以在这里声明:

var myJoint = null;

$(document).ready(function () {
    var b2Vec2 = Box2D.Common.Math.b2Vec2
       ,b2AABB = Box2D.Collision.b2AABB
       ... etc

然后你应该能够在以后的代码中的任何一点销毁关节。