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)
我的 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)