如何在列表中显示一个矩形

how to display a rect inside a list

我想做的是创建一个列表,我将在其中附加一些矩形,然后使用它们的索引绘制它们。但是,由于某种原因,这似乎不起作用,应用程序中未显示形状(矩形)window,所以如果有人能指出正确的方向或给我另一种方法,我将不胜感激。

提前致谢。

def buffer(self):

    self.blocks = [] # rect container


    """
    ---- creating and appending rects ----

    """

    for x in range(5):
        self.blocks.append(

            pygame.draw.rect(
                self.screen,
                (255,255,0),
                [0,0,50,50]
                )

            )

    while 1:

        self.key = pygame.key.get_pressed()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return 0


        self.screen.fill((0,0,0))

        self.blocks[0] # draw rect

        pygame.display.update()
        self.clock.tick(self.fps)


    pygame.quit()
    sys.exit()
    quit()

至少创建具有颜色、x、y、宽度、高度的元组

self.blocks = [] # rect container

# creating and appending rects

for x in range(5):
    self.blocks.append( ((255,255,0),[0,0,50,50]) )

然后就可以用它来画rect了

# draw rect
color, (x, y, w, h) = self.blocks[0] 
pygame.draw.rect(self.screen, color, pygame.Rect(x, y, w, h)) 

pygame.draw.rect 在屏幕上创建矩形,但不创建您可以保留在列表中的对象。