PyGame - как рисовать изображения в цикле - PullRequest
0 голосов
/ 19 января 2019

Я делаю игру Brick Breaker в PyGame. Все работало просто отлично, пока я не захотел обмениваться «прямоугольниками» с изображениями. Я пытаюсь добавить их в список, используя вложенный цикл 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? А как насчет аргументов?

1 Ответ

0 голосов
/ 19 января 2019

Вы постоянно модифицируете прямоугольник одного и того же объекта.Это не может работать.

Вместо этого создайте список координат и перенесите одно и то же изображение в разные пункты назначения на основе этого списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...