pygame 绘制填充矩形覆盖边框,但只是有时?

pygame drawing a filled rectangle overwrite border, but only sometimes?

我的 pygame 程序中有一个 class 扩展精灵,并有效地为矩形提供碰撞和诸如此类的东西。 class的__init__如下:

def __init__(self,topleft,size,label):
    pygame.sprite.Sprite.__init__(self)
    self.image = pygame.Surface(size)
    self.rect = self.image.get_rect()
    self.rect.topleft = topleft
    self.image.fill([128,128,128])
    pygame.draw.rect(self.image, [200,200,200], self.rect, 5)

这对一个矩形非常有用...问题是,在该矩形之后,任何其他矩形都是设置为填充颜色 (128,128,128) 的纯色矩形,而不是具有不同颜色 (200,200,200) 边框的填充矩形。我预计这是 class 变量而不是实例变量的某种问题,但我不确定问题出在哪里。

好的,我明白了。 draw 函数中的 Rect 参数与图像的位置 relative。因为我已经将它的 rect 设置到它在屏幕上的位置,所以它绘制了从角偏移的矩形方式。它在我的第一个上起作用只是因为它恰好从 [0,0] 开始。这是固定的绘制代码:

pygame.draw.rect(self.image, [200,200,200],pygame.Rect([0,0],size), 5)