Box2d As3的棱彩关节不起作用?

时间:2013-03-20 01:02:10

标签: android actionscript-3 flash air box2d

我试图在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中创建移动平台?感谢您抽出宝贵时间阅读本文。

1 个答案:

答案 0 :(得分:1)

尝试修改初始化语句。将第一个参数设置为要移动的主体(平台),将第二个参数设置为静态主体(世界),第三个参数将是平台中心。

我在Box2D关节上写了一个非常受欢迎的教程,附带一个带有源代码的Prismatic Joints示例,所以如果你还有问题的话也要看一下 Tutorial