【问题标题】:Libgdx box2d Sprite positioning complex polygonLibgdx box2d Sprite 定位复杂多边形
【发布时间】:2015-08-15 10:25:26
【问题描述】:

在我的最后一个问题得到解答后,我遇到了一个新问题: 如下图所示,如下图所示: http://i.stack.imgur.com/MXQRr.png

在那里你可以看到我用于动态游戏对象的多边形

我必须把这个红点左下角环绕放在这个多边形的中间..

但是如何计算我的 Sprite 的 X/Y 呢?

通常我会说

polygonShape.setAsBox(WIDTH, HEIGHT)

精灵定位如下:

sprite.position.set(body.getPosition.x - WIDTH / 2, body.getPosition.y - HEIGHT / 2

但是现在这个多边形是不可能的,因为身体物理编辑器通常将身体的原点放在 X,Y 0 和右上角的顶点,如上图所示.. 但在我的例子中,身体的原点(红点)位于这个多边形中间的某个地方。 (允许正确旋转)

我应该如何计算正确的 X/Y 点?半宽半高几乎是正确的,仍然是最小的偏移量,因为:我不能将原点完美地放在中间..

我给出了以下数学相关点:

  • 车身/夹具的 MAX/MIN X/Y
  • 车身/夹具的宽度/高度
  • 从身体出发

我只是无法得到正确的方程式来计算精灵的正确位置。而且黑客行为很丑陋,必须有办法得到它。。

几个小时以来我一直在努力解决这个问题..

问题:当身体的原点“几乎在中间”并且在中间完美时,如何计算精灵的X,Y?

【问题讨论】:

    标签: java libgdx sprite box2d


    【解决方案1】:

    我真的很努力.. 也许我不应该再次尝试发明轮子。“dermetfan”已经为 Libgdx 开发了一些真正史诗般的实用程序。 以“Box2dSprite”为例

    box2dsprite.draw(batch, body)
    

    旋转等由班级完成。

    我只能说..史诗:)

    如果你有同样的问题,我可以说,你应该试一试!

    https://bitbucket.org/dermetfan/libgdx-utils/wiki/browse/

    在这里你可以看到他所有的课程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多