我的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);
}
任何人都可以告诉我如何解决这个问题
答案 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
然后你应该能够在以后的代码中的任何一点销毁关节。