【问题标题】:Libgdx - box2d polygonshape doesn't fit its spriteLibgdx - box2d 多边形不适合它的精灵
【发布时间】:2015-09-19 18:15:30
【问题描述】:

我有一个使用 .setasbox 创建的多边形的身体,但是当我运行我的游戏时,这个盒子比我的精灵大一点。 我知道 setasbox 使用半高和半宽,我使用缩放常数将米转换为像素,并且我知道精灵在左下角也有轴的原点。尽管如此,我仍然有一个宽度比精灵稍大的盒子,而且这个间隙是相同的,但是我改变了盒子的大小......

这是我用来创建盒子的代码(160 是将米缩放为像素的常数):

 public Block(World w, float halfWidth, float halfHeight, Vector2 position, Texture tex){
    world = w;

    bodyd = new BodyDef();
    bodyd.type = BodyDef.BodyType.KinematicBody;
    bodyd.gravityScale = 0;
    shape = new PolygonShape();
    shape.setAsBox(halfWidth, halfHeight);
    fixtured = new FixtureDef();
    fixtured.shape = shape;
    fixtured.density = DENS;
    fixtured.friction = FRIC;
    fixtured.restitution = REST;


    bodyd.position.set(new Vector2(position.x, position.y));
    body = world.createBody(bodyd);
    fixture = body.createFixture(fixtured);
    body.setUserData(this);


    texture = tex;
    sprite = new Sprite(texture);
    sprite.setSize(halfWidth * 2 * 160, halfHeight*2*160);
    sprite.setPosition((body.getPosition().x - halfWidth) * 160, (body.getPosition().y - halfHeight) * 160);
}

【问题讨论】:

  • 请附上创建盒子的截图和代码 - 你的精灵的尺寸是多少?
  • 我刚刚附上了我的代码

标签: android libgdx sprite box2d shape


【解决方案1】:
【解决方案2】:

我看不出你的代码有什么问题

您是否认为您为精灵放置的大小是完整精灵的大小而不是精灵内部块的大小

我认为这就是为什么你的砖精灵比你的砖物理小:

除非你的砖块有完整的精灵大小,否则问题可能与其他问题有关

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多