代码之家  ›  专栏  ›  技术社区  ›  Dovahkiin

Box2D如何处理位置和坐标?

  •  2
  • Dovahkiin  · 技术社区  · 9 年前

    我有两个问题。

    Box2D是否有一个原点在某个特定位置(如左上角或中心)的概念,因为它呈现不可知论?

    居中 vs左上角,如SFML。这是真的吗?例如:

    b2BodyDef groundBodyDef;
    groundBodyDef.position.Set(0.0f, -10.0f);
    

    1 回复  |  直到 9 年前
        1
  •  3
  •   Louis Langholtz    9 年前

    Box2D处理位置和坐标,就像它们是距离世界原点的水平和垂直米。换句话说,一个坐标 b2Vec2(2.0f, 3.0f) 表示距离原点右侧2米、距离原点上方3米的点(假设视觉表示右侧为正X,顶部为正Y)。正如你所指出的,左、右、上、下是可互换的,因为它呈现出不可知性,但如果你将 b2Vec2(2, 3) 与重力相协调 b2Vec2(0, -10) 把坐标直观地表示出来,然后一个动态物体会在视觉上向下加速,假设没有任何东西可以阻止它。

    在回答上一个问题时,设置 groundBodyDef (0.f, -10.0f) 地面车身DEF 将位于 (0.f,-10.0f) 你附加到那个身体上的任何形状都是相对于那个位置的。把它看作一个中心对我来说本身并没有错;至少不比将(0,0)的二维原点视为图的中心更错误。如果你把位置和质量的中心混淆了,你可能会在用中心来思考问题上遇到麻烦。