-1

jbox2d (Java) を開発していますが、ポリゴン シェイプを作成するときに問題が発生します。

ポリゴンの位置を選択できません。ウィンドウの中心として定義したフィールド「m_centroid」があります。ポリゴンは左隅に残ります。

public class Player {
    private Body body;

    public Player(World world) {
        BodyDef bodyDef = new BodyDef();
        bodyDef.angle = (float) Math.toRadians(0.0f);
        bodyDef.position.set(800.0f / 2, 600.0f / 2);
        bodyDef.type = BodyType.DYNAMIC;

        /*Vec2[] vertices = {
            new Vec2(bodyDef.position.x, bodyDef.position.y - 10.0f),
            new Vec2(bodyDef.position.x + 10.0f, bodyDef.position.y + 10.0f),
            new Vec2(bodyDef.position.x - 10.0f, bodyDef.position.y + 10.0f)
        };*/

        Vec2[] vertices = {
                new Vec2(0.0f, - 10.0f),
                new Vec2(+ 10.0f, + 10.0f),
                new Vec2(- 10.0f, + 10.0f)
        };

        PolygonShape shape = new PolygonShape();
        shape.set(vertices, vertices.length);
        shape.m_centroid.set(bodyDef.position);

        FixtureDef fixtureDef = new FixtureDef();
        fixtureDef.shape = shape;
        fixtureDef.density = 0.5f;
        fixtureDef.friction = 0.3f;
        fixtureDef.restitution = 0.5f;

        body = world.createBody(bodyDef);
        body.createFixture(fixtureDef);
    }
}
4

1 に答える 1

0

重心は、ローカル座標のポリゴンの中心であると想定され、トルク/質量の計算に使用されます。あなたはそれを変更すべきではありません。代わりに、ボディで変換を使用する必要があります。のようなものを試してくださいbody.getTransform().setPos(___)

于 2013-12-02T18:46:02.240 に答える