Pygame:究竟是什么是Rect()参数,它们代表什么?

时间:2017-12-15 09:24:03

标签: python python-3.x pygame

这是我到目前为止对Rect的理解,它是一个包含给定矩形表面的所有属性的数据类型。并且在pygame.draw.rect()函数中用作第三个参数,以使其起作用。

代码遵循此语法(来自官方文档):

  

Rect(左,顶,宽,高)

我理解第三个和第四个参数,它假设代表矩形表面的尺寸。我不明白的是前两个论点 - 它假设代表什么,它做了什么?为什么它总是从(0,0)开始,我们可以用它做什么?

1 个答案:

答案 0 :(得分:1)

前两个参数分配给rect的xy属性,即topleft角的坐标。因此,如果要创建位于坐标(200,300)处的矩形,可以编写:rect = pygame.Rect(200, 300, 40, 50)。第三个和第四个参数确实是生成的rect实例的维度。

pygame.Rect还有许多其他attributes可用于定位你的矩形。

x,y 
top, left, bottom, right 
topleft, bottomleft, topright, bottomright 
midtop, midleft, midbottom, midright 
center, centerx, centery

如果您想移动矩形,可以将新位置分配给xytopleft或其他一个属性。

rect.x = 5
rect.y = 10
# That's pretty much the same as writing:
rect.topleft = (5, 10)
# You can also increment the position.
rect.x += 5
# Or use the `rect.move_ip` method.
rect.move_ip(5, 10)

Rects用于存储精灵或图像的blit位置以及碰撞检测,例如使用colliderectcollidepoint方法。