我试图在box2d中使用棱柱关节创建一个移动平台,所有创建的都是一个盒子,没有明显的关节,我做错了什么?这是我的代码
var prismaticJoint:b2PrismaticJoint;
...
{
...
BodyDef.position.Set(0 / RATIO, 0 / RATIO);
floorDef.SetAsBox(250 / RATIO, 10 / RATIO);
fixtureDef.shape = floorDef;
fixtureDef.friction = 0.5;
fixtureDef.density = 0.5;
fixtureDef.restitution = 0;
movePlatformBody = PhysiVals.world.CreateBody(BodyDef);
movePlatformBody.CreateFixture(fixtureDef);
var prismaticJointDef:b2PrismaticJointDef = new b2PrismaticJointDef();
prismaticJointDef.Initialize(body, movePlatformBody, movePlatformBody.GetWorldCenter(), new b2Vec2(0,1));
prismaticJointDef.enableLimit = true;
prismaticJointDef.enableMotor = true;
prismaticJointDef.lowerTranslation = 0;
prismaticJointDef.maxMotorForce = 100;
prismaticJointDef.motorSpeed = 1;
prismaticJointDef.upperTranslation = 270 / PhysiVals.RATIO;
PhysiVals.world.CreateJoint(prismaticJointDef);
//prismaticJoint = PhysiVals.world.CreateJoint(prismaticJointDef as b2JointDef) as b2PrismaticJoint;
我尝试了两种在世界上创造它的方法,我不知道使用哪种方法。如何在box2d中创建移动平台?感谢您抽出宝贵时间阅读本文。
答案 0 :(得分:1)
尝试修改初始化语句。将第一个参数设置为要移动的主体(平台),将第二个参数设置为静态主体(世界),第三个参数将是平台中心。
我在Box2D关节上写了一个非常受欢迎的教程,附带一个带有源代码的Prismatic Joints示例,所以如果你还有问题的话也要看一下 Tutorial