我正在做一个俄罗斯方块,当我试图用焊接接头粘合两个物体时,连接线不是刚性的,物体有时会反弹,对我来说神秘的是如何使用这个代码:
//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);
处理此页面:http://www.binarytides.com/weld-joint-box2d-javascript/
这家伙设法实现了我想要的,(我想要用焊接接头连接的那两个盒子).Of课程我使用了等效的代码,焊接接头并不像页面上的那样严格。我正在使用libgdx和box2d (可能是版本或端口问题?)。我正在尝试焊接接头,因为我想稍后一个接一个地销毁这些盒子。我的演员被“映射”到每个身体上。这将允许我摧毁演员,让那些在最上面的自然倒下。感谢您的帮助:)
发布于 2014-04-18 20:16:20
焊接接头不是“实心”的。从Box2D手册中:
使用焊接接头来定义易碎结构是很有诱惑力的。但是,Box2D解算器是迭代的,因此关节有点软。因此,通过焊接接头连接的实体链将发生弯曲。
相反,最好从具有多个夹具的单个主体开始创建易断的主体。当实体断开时,可以销毁一个灯具,然后在新实体上重新创建它。请参阅测试床中的易碎示例。
虽然你的结构不是易碎的,但你正试图将它们结合在一起,使它们表现得像一个完整的整体。在您的例子中,我将为您想要“粘合”在一起的部件动态创建fixture。
这回答了你的问题吗?
https://stackoverflow.com/questions/23146431
复制相似问题