Javascript 使用WeldJointDef的两个实体

Javascript 使用WeldJointDef的两个实体,javascript,libgdx,box2d,Javascript,Libgdx,Box2d,我在做俄罗斯方块,当我尝试使用焊接接头粘合两个身体时,连接线不是刚性的,身体有时会反弹,对我来说一个谜是如何使用此代码: //create distance joint between b and c var joint_def = new b2WeldJointDef(); joint_def.bodyA = b; joint_def.bodyB = c; //connect the centers - center in local coordinate - relative to bod

我在做俄罗斯方块,当我尝试使用焊接接头粘合两个身体时,连接线不是刚性的,身体有时会反弹,对我来说一个谜是如何使用此代码:

//create distance joint between b and c
var joint_def = new b2WeldJointDef();
joint_def.bodyA = b;
joint_def.bodyB = c;

//connect the centers - center in local coordinate - relative to body is 0,0
joint_def.localAnchorA = new b2Vec2(-0.5, -0.5);
joint_def.localAnchorB = new b2Vec2(0.5, 0.5);

//difference in angle of each body
joint_def.referenceAngle = 0 * Math.PI / 3;

//add the joint to the world
world.CreateJoint(joint_def);
在本页上工作:

这家伙设法实现了我想要的,(我想要像那两个由焊接接头连接的盒子一样的东西)。当然,我使用了等效的代码,焊接接头并不像页面中的焊接接头那样僵硬。我正在使用libgdx和box2d(可能是版本或端口问题?)。我正在试着焊接接头,因为我想以后一个一个地把盒子毁掉。我的演员被“映射”到每个人身上。这将允许我摧毁演员,让那些在顶部自然下降。谢谢您的帮助:)

焊接接头不是“实心”的。从Box2D手册:

使用焊接接头来定义易碎结构很有诱惑力。 但是,Box2D解算器是迭代的,因此关节有点软。 因此,通过焊接接头连接的身体链将发生弯曲

相反,最好从单个实体开始创建易碎实体 具有多个固定装置的车身。当身体破裂时,你可以摧毁一个 夹具,并在新实体上重新创建它。请参见中的易碎示例 试验台

虽然你的结构不是易碎的,但你正试图将它们结合在一起,使它们像一个整体一样工作。在您的情况下,我将为要“粘合”在一起的零件动态创建夹具

这回答了你的问题吗