如何将精灵添加到Box2d Body?

时间:2015-12-15 16:23:46

标签: java libgdx sprite box2d

我刚刚为游戏制作了我的角色,这是一个box2d动态的身体:

   public Body createPlayer(){
        Body body;
        BodyDef def = new BodyDef();
        def.type = BodyDef.BodyType.DynamicBody;
        def.fixedRotation = true;
        def.position.set(position.x, position.y);
        body = world.createBody(def);

        PolygonShape shape = new PolygonShape();
        shape.setAsBox(1, 1);

        FixtureDef fixtureDef = new FixtureDef();
        fixtureDef.shape = shape;
        fixtureDef.density = 0.1f;
        body.createFixture(fixtureDef).setUserData(this);
        body.setLinearVelocity(20, 0);
        shape.dispose();

        return(body);
    }

是否可以在身体上添加纹理或精灵?或者我只是将精灵位置设置为与我身体的位置相同?这样它就会覆盖身体的形状并像实际的box2d身体一样移动。

1 个答案:

答案 0 :(得分:2)

Box2D物理库完全与图形API无关 - 它根本不了解精灵。这是一个物理世界的无视觉(仅数据)模拟。

正如您所提到的,您必须创建一个Sprite并移动/旋转它以与Box2D模拟保持同步。

Here is a good beginners guide将精灵链接到Box2D模拟