这是我到目前为止对Rect的理解,它是一个包含给定矩形表面的所有属性的数据类型。并且在pygame.draw.rect()
函数中用作第三个参数,以使其起作用。
代码遵循此语法(来自官方文档):
Rect(左,顶,宽,高)
我理解第三个和第四个参数,它假设代表矩形表面的尺寸。我不明白的是前两个论点 - 它假设代表什么,它做了什么?为什么它总是从(0,0)开始,我们可以用它做什么?
答案 0 :(得分:1)
前两个参数分配给rect的x
和y
属性,即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
如果您想移动矩形,可以将新位置分配给x
,y
,topleft
或其他一个属性。
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位置以及碰撞检测,例如使用colliderect
或collidepoint
方法。