使用JBox2D和JavaFX绘制旋转的实体

时间:2015-03-30 14:47:39

标签: java javafx jbox2d

我正在为CS课程做一些初步实验,我尝试将 JBox2D 用作物理库并使用 JavaFX 进行绘图。我有一些从屏幕顶部掉落的运气画圈,但现在我有问题做同样的矩形(或任何其他形状)。

我能够绘制和模拟,但我无法弄清楚如何使用Body对象中的值在JavaFX中旋转绘制的节点。

这是我使用JBox2D的机构代码:

    @Override
    public Body createBody() {

        BodyDef bd = new BodyDef();
        bd.type = BodyType.DYNAMIC;
        bd.position.set(centerX, centerY);

        PolygonShape ps = new PolygonShape();
        ps.setAsBox(2.0f,4.0f);

        FixtureDef fd = new FixtureDef(); 
        fd.shape = ps;
        fd.density = 0.9f;
        fd.friction = 0.3f; 
        fd.restitution = 0.5f;

        Body b = PhysicalScene.world.createBody(bd);  

        b.createFixture(fd);

        return b;
    }
}

这是使用JavaFX中的节点绘制的 - 如下所示:

    @Override
    public Node create() {
        Rectangle r = new Rectangle();
        r.setHeight(20);
        r.setWidth(40);
        r.setStroke(Color.RED);
        r.setLayoutX(Physics.toPixelX(centerX)); 
        r.setLayoutY(Physics.toPixelY(centerY));

        // THIS IS WHAT I'M MISSING
        // r.setRotate(/* some value from Body */);

        return r;
    }

代码并不漂亮,但我希望你明白这个想法。我可以通过在方法中插入参数来旋转节点,但不知道如何从Body对象本身获取这些值。

我希望你能帮忙,谢谢!

0 个答案:

没有答案