0

我刚开始使用 Box2D,遇到了一个奇怪的问题。

我有一个简单的函数可以将对象位置限制在预定义的区域内。

我通过获取身体的世界位置、将其与预定义区域的边界框值进行检查以及对身体施加力以使其保持在其中来做到这一点。

 if (bodyWorldPos.x >= worldWidth)
        body.setLinearVelocity(...);

这工作正常。

但是,如果身体与另一个身体发生碰撞,这个简单的方法就会停止工作。身体的世界位置,检索如下:

body.getWorldPoint(body.getPosition())

返回错误的值。

这是 LibGDX 的 Box2D 中的错误还是我做错了什么?

4

1 回答 1

1

函数 getWorldPoint 将一个点从“局部坐标”(相对于身体的 0,0 位置)转换为全局坐标(相对于世界中的 0,0)。

我认为为此目的,您只能使用 getPosition() 。

于 2012-12-28T18:20:14.683 回答