代码之家  ›  专栏  ›  技术社区  ›  Jumpman

Box2d libgdx不接受BodyType作为参数

  •  0
  • Jumpman  · 技术社区  · 9 年前

    我认为这几乎是不言而喻的

    http://image.prntscr.com/image/b699a17ac7954732b18b275689425227.png http://image.prntscr.com/image/86fc8d49e513402bac04f57483fbbe04.png

    对不起,我无法直接上传图片,因为我没有足够的声誉。

    @代码添加

    来自init方法的代码

    terrainBodyUp=createPhysicsObjectFromGraphics(terrainAbove,
                new Vector2(terrainAbove.getRegionWidth()/2,480- terrainAbove.getRegionHeight()/2),
                BodyDef.BodyType.StaticBody);
    

    以及我的createPhysicsObjectFromGraphics方法

    private Body createPhysicsObjectFromGraphics(TextureRegion region,
                                                 Vector2 position, BodyDef.BodyType bodyType) {
        BodyDef boxBodyDef = new BodyDef();
        boxBodyDef.type = bodyType;
        boxBodyDef.position.x = position.x/BOX2D_TO_CAMERA_;
        boxBodyDef.position.y = position.y/BOX2D_TO_CAMERA_;
        Body boxBody = world.createBody(boxBodyDef);
        PolygonShape boxPoly = new PolygonShape();
        boxPoly.setAsBox(region.getRegionWidth()/(2*BOX2D_TO_CAMERA_),
                region.getRegionHeight()/(2*BOX2D_TO_CAMERA_));
        FixtureDef fixtureDef = new FixtureDef();
        fixtureDef.shape = boxPoly;
        fixtureDef.density=1;
        fixtureDef.restitution=0.2f;
        boxBody.createFixture(fixtureDef);
        boxPoly.dispose();
        boxBody.setUserData(region);
        return boxBody;
    }
    
    2 回复  |  直到 9 年前
        1
  •  0
  •   AAryan    9 年前

    不兼容类型错误,因为createPhysicsObjectFromGraphics方法返回Body,并且您正在将其分配到类型为BodyDef.BodyType的terrainBodyUp变量。

        2
  •  0
  •   Jumpman    9 年前

    感谢@Abishek Aryan为我指明了正确的方向。当我“全部替换”时,我意外地更改了数据类型,这导致了我的问题。因此,我没有使用Body作为数据类型,而是使用了BodyDef.BodyType