2

我正在学习在 pygame 中使用 box2d(实际上是 python 的 pybox2d),在其中一个示例中,有以下函数:

def my_draw_polygon(polygon, body, fixture):
    vertices=[(body.transform*v)*PPM for v in polygon.vertices]
    vertices=[(v[0], SCREEN_HEIGHT-v[1]) for v in vertices]
    pygame.draw.polygon(screen, colors[body.type], vertices)

到目前为止,我已经理解了大部分代码,但我不明白 body.transform 是什么,或者为什么我们在绘制形状时将顶点乘以它。

什么是 body.transform,为什么它很重要?

4

1 回答 1

0

变换定义了物体在世界中的位置和旋转。这是 pyBox2d 源代码中的文本:

    The body transform for the body's origin.
    To set it, you may pass in a new Transform() or a tuple of:
        (position, angle)
    Setting the transform breaks any contacts and wakes the other bodies.
    Manipulating a body's transform may cause non-physical behavior.
    @param position the world position of the body's local origin.
    @param angle the world rotation in radians.
于 2013-08-09T11:41:24.777 回答