Ligdx Box2d:将box2d坐标转换为屏幕坐标

我是新的libgdx,我有一个小问题。 我在box2d中创建了一个body,我想为它分配一个sprite; 为此,我需要获取主体的位置,然后在主循环中插入精灵的更新位置,对吧? 所以.. ..这样做,但精灵不正确的身体alignment,但在一个角落。 我应该写在body.setPosition()和精灵的位置?

PS:对不起,但我不能张贴屏幕截图:(

你必须考虑box2d和场景的不同场景。 这两个东西有不同的定位点。 Box2d基于对象的中心分配位置,而基于对象的角落的场景分配位置。

您可以将对象的锚点更改为与box2d匹配的中心点,或者您必须计算精灵或对象的位置。

如果要在场景坐标中将对象的位置设置为(100,100),则box2d对象的相同分配应为(100 / PTM_RATIO,100 / PTM_RATIO),其中PTM_RATIO值为32.0f。

现在使用上面的计算,精灵和对象得到相同的位置。 另外考虑对象的位置和大小必​​须在box2d中除以PTM_RATIO,否则会显示exception行为。