2015-08-15 58 views
0

后,我的最后一个问题得到了回答我遇到了一个新问题: 它的下面,你可以在这个图片中看到: http://i.stack.imgur.com/MXQRr.pngLibgdx Box2D的雪碧定位复杂的多边形

在那里,你可以看到我的多边形,我使用的我的动态博弈对象

我必须把这个红点左下角一轮关于这个多边形的中间 ..

但我怎么能计算出X/Y为我的雪碧?

通常情况下,我会说

polygonShape.setAsBox(WIDTH, HEIGHT) 

和精灵的定位比如下:

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

,但现在这是不可能用这种多边形,因为身体phyiscs编辑器会将身体的起源正常在X,Y 0和右上角的顶点,你可以在上面张贴的图片看到.. 但在我的情况下,身体的起源(红点)被放置在这个多边形的中间某处。 (为了让正确的旋转)

我怎么来计算正确的X/Y点?半宽半高几乎是正确的,仍然是最小的,因为偏移:给我不能PERFECTLY放置起源于中间..

我有以下的数学相关的要点:

  • MAX/MIN X/Y从身体/夹具
  • 从身体/夹具
  • 宽/高
  • 从身体
  • 起源

我只是不能得到正确的公式,计算出精灵的正确位置。而黑客为u甘氨酸,必须有一种方式来获得它..

我与时间以来这个问题所困扰..

问:如何计算X,Y的精灵,当机体的起源是“近在中间“和不是完美的中间?

回答

0

我真的试过这么多.. 也许我不应该再试图发明轮子..“dermetfan”已经为Libgdx开发了一些真正的史诗实用工具。 如示例 “Box2dSprite”

box2dsprite.draw(batch, body) 

旋转等是由类实现。

我只可以说..史诗:)

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

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

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