java - 如何将 Sprite 添加到 Box2d Body?

标签 java libgdx sprite box2d

我刚刚为游戏制作了一个 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);
    }

是否可以向主体添加纹理或 Sprite ?或者我将 Sprite 位置设置为与我的 body 位置相同?这样它将覆盖 body 的形状并像实际的 box2d body 一样移动。

最佳答案

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

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

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

关于java - 如何将 Sprite 添加到 Box2d Body?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34294323/

相关文章:

java - Android Studio : Can't find assets 中的 GDXruntime 异常

CSS sprite image + background-重复它的一部分

c++ - 从 Sprite 表中的 sfml 动画 Sprite

java - 方法未正确显示

java - 使用视差屏幕

java - Jarsigner 签署 Corda 工作流程 jar 时出现重复条目​​错误

java - Libgdx AndroidLauncher 致命异常 ClassNotFoundException

flutter - 如何为图像添加透明度

java - 可以在 Java 或 Kotlin 中以编程方式获取局部变量名吗?

java - 如何处理屏幕方向变化