0

プリズムジョイントを使用して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;

私は世界でそれを作成する2つの方法を試しましたが、どちらを使用するかわかりません。box2dで移動プラットフォームを作成するにはどうすればよいですか?お時間を割いていただきありがとうございます。

4

1 に答える 1

1

initializeステートメントを変更してみてください。最初のパラメーターを移動するボディ(プラットフォーム)に設定し、2番目のパラメーターを静的ボディ(ワールド)に設定すると、3番目のパラメーターがプラットフォームの中心になります。

Box2Dジョイントに関する非常に人気のあるチュートリアルを、ソースコードを使用したプリズマティックジョイントの例とともに作成しました。それでも問題が解決しない場合は、チュートリアルもご覧 ください

于 2013-03-20T02:27:50.180 に答える