我丢失了大量的box2d和它的端口信息。 但是我有一个非常简单的问题,我无法在任何地方得到任何信息。
如何正确计算身体姿势。假设我在屏幕上有精灵位置(10,20)。 为什么box2d计算的每个教程都有所不同?
例如: - 使用函数coordPixelToWorld和coordWorldToPixel处理(来自processing.org),用于计算beetwen world和screen - 这是一个小编译功能; - andengine具有类似的转换beetwen世界和屏幕的功能; - actionscript - 这里我不明白为什么,但每个教程都有屏幕坐标并按比例函数划分。
我问这个问题,因为以上所有都有一个共同点:0,0的屏幕坐标位于左上角。 box2d是否为每个端口写入不同的内容?
我将很感激解释。
更新
我对box2d动作没有太大的麻烦。我的问题是:为什么当我将身体位置设置为(0,0)时,它会以简短的单词显示在窗口的左上角。在任何其他box2d端口(处理,jbox2d,andengine box2d扩展)中,如果我将主体位置设置为(0,0),它将显示在窗口的中心。我知道关于每米像素的规则等。
答案 0 :(得分:1)
变化的原因是Box2D的所有形式都使用米作为其测量单位。其原因在于它旨在模拟真实世界的物体。
Box2D根本不需要具有可视化表示。当您创建box2D模拟时,由开发人员决定在box2D的图形渲染中显示的详细程度。因此会有一个乘数,表示米到像素的转换。在Box2D闪存的情况下,此比率的默认值为30px:1m。
因此,每个toturial都有转换功能的原因是Box2D使用米,计算机显示器使用像素。
它将米转换为像素,将像素转换为米。
答案 1 :(得分:0)
在动作脚本中,DisplayObject的中心通常是左上角,但Box2D主体的中心与重心中心(形状的实际中间,而不是左上角)重合。 Box2D单位也不完全是像素,但您可以轻松地在两者之间进行转换。
我建议您查看 Box2DFlash手册,尤其是Units和 UserData 上的部分。理想情况下,您需要阅读整本手册,以便更好地了解Box2D,这将为您提供更多控制。
如果您对细节不感兴趣,请尝试使用World Construction Kit。它应该可以更容易地设置Box2D世界。