如何将精灵添加到 Box2d Body?

How to add sprite to a Box2d Body?

我刚刚为游戏制作了我的角色,它是一个 box2d 动态 body:

   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);
    }

是否可以向 body 添加纹理或精灵?或者我只是将精灵位置设置为与 body 的位置相同?这样它将覆盖 body 的形状并像实际的 box2d body.

一样移动

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

如您所述,您必须创建一个 Sprite 并move/rotate它与 Box2D 模拟保持同步。

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