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

时间:2015-02-02 05:33:34

标签: python pygame draw rect class-variables

我的pygame程序中有一个类,它扩展了sprite,并有效地给了一个矩形的碰撞和诸如此类的东西。该类的__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)边框的填充矩形。我期待这是类变量的某种问题,而不是实例变量,但我不确定问题出在哪里。

1 个答案:

答案 0 :(得分:2)

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

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