2015-08-15 43 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/

在這裏你可以看到他的所有類。