【问题标题】:Box2d libgdx won't accept BodyType as parameterBox2d libgdx 不接受 BodyType 作为参数
【发布时间】:2017-01-07 14:08:13
【问题描述】:

我认为这几乎是不言自明的

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

【问题讨论】:

  • 还有更多的代码吗?
  • 我就直接说这可能与 Box2D 或 libGDX 无关
  • 这没有任何意义,我创建了函数,如您所见,作为参数类型我设置了 BodyDef.BodyType 但是当我传递 BodyDef.BodyType.Dynamic 时它会产生错误。如果我直接在函数内部分配 BodyDef.BodyType.Dynamic ,它就可以工作。
  • 你能多加一点周围的代码吗?很难看到发生了什么
  • 您可以通过添加实际代码来编辑您的问题吗?有人可能想要复制它,或者从这个页面阅读它

标签: libgdx box2d game-engine


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    感谢@Abishek Aryan 为我指明了正确的方向。当我“全部替换”时,我不小心更改了数据类型,这给我带来了问题。所以我没有使用 Body 作为数据类型,而是使用 BodyDef.BodyType

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多