首页 > 解决方案 > PyGame - 如何在循环中绘制图像

问题描述

我正在 PyGame 中制作 Brick Breaker 游戏。一切都很好,直到我想用图像交换“矩形砖”。我尝试使用嵌套的 for 循环将它们添加到列表中,然后绘制列表。但是,它们中的每一个都打印在另一个之上。我要改变什么?在此先感谢,这是代码

def create_bricks(self):
    self.bricks = []
    self.brick = pygame.image.load("brick.png")
    self.brick_rect = self.brick.get_rect() 
    y_pos = 30
    for i in range(5):
        x_pos = 50
        for j in range(8):
            self.brick_rect.center = (x_pos, y_pos)
            self.bricks.append(self.brick_rect)
            x_pos += 60
        y_pos += 20

def draw_bricks(self):
    for brick in self.bricks:
        self.screen.blit(brick, self.brick_rect)

我应该使用 screen.blits 而不是 blit 吗?论据呢?

标签: python-3.xpygame

解决方案


你不断地修改同一个对象的矩形。那是行不通的。

而是创建一个坐标列表,并根据该列表将相同的图像传送到不同的目的地。


推荐阅读