Python 在pygame中从2d列表渲染背景框类时出现问题

Python 在pygame中从2d列表渲染背景框类时出现问题,python,python-3.x,pygame,Python,Python 3.x,Pygame,我试图通过迭代二维数组和绘图框来为一个简单的蛇游戏创建一个盒子的背景,我已经在数组的每个部分存储了一个类BackgroundCube的实例。当我运行程序时,没有错误,但pygame屏幕上没有显示任何内容 我已经打印了每个子列表的长度,其中显示了20的长度,这是我想要的网格大小。我还刚刚打印了整个数组,它显示了我认为是类的实例,类似这样的东西:将是列表中的一个条目。所以我相信问题在于我如何画矩形 python WIDTH = 400 HEIGHT = 420 screen = pygame.di

我试图通过迭代二维数组和绘图框来为一个简单的蛇游戏创建一个盒子的背景,我已经在数组的每个部分存储了一个类BackgroundCube的实例。当我运行程序时,没有错误,但pygame屏幕上没有显示任何内容

我已经打印了每个子列表的长度,其中显示了20的长度,这是我想要的网格大小。我还刚刚打印了整个数组,它显示了我认为是类的实例,类似这样的东西:将是列表中的一个条目。所以我相信问题在于我如何画矩形

python

WIDTH = 400
HEIGHT = 420
screen = pygame.display.set_mode((WIDTH, HEIGHT))

class BackgroundCube:
    def __init__(self, x, y, width, height, color):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.color = color

    def draw(self, screen):
        pygame.draw.rect(screen, self.color, (self.x, self.y, self.width, self.height), 2)

def redrawGameWindow():
    for x in range(20):
        for y in range(20):
            cube2 = background_cube_list[x][y]
            cube2.draw(screen)

run = True
background_cube_list = [[0 for x in range(int(WIDTH/20))] for x in range(int((HEIGHT-20)/20))]
while run:
    for cube in range(int(WIDTH / 20)):
        for cube1 in range(int((HEIGHT - 20) / 20)):
            background_cube_list[cube][cube1] = BackgroundCube(cube * 20, cube1 * 20, 20, 20, (144, 144, 144))
    clock.tick(30)

    redrawGameWindow()
同样,没有错误,只是一个空白的白色窗口。谢谢。

您忘了添加

pygame.display.update()
在主循环中。在
重画游戏窗口()之后添加它。

您还需要定义
clock
,我猜它是
clock=pygame.time.clock()
。将其添加到主循环之前