我的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)边框的填充矩形。我期待这是类变量的某种问题,而不是实例变量,但我不确定问题出在哪里。
答案 0 :(得分:2)
好的,我明白了。 draw函数中的Rect参数是 relative 到图像的位置。由于我已经将其矩形设置到屏幕上的位置,因此它绘制了从角落偏移的矩形方式。它只在我的第一个工作,因为它恰好从[0,0]开始。这是固定的抽奖代码:
pygame.draw.rect(self.image, [200,200,200],pygame.Rect([0,0],size), 5)