Почему моя игра (с использованием pygame) настолько запаздывает после того, как я перетащил изображение на задний план? - PullRequest
2 голосов
/ 21 апреля 2020

Мне нужна фоновая картинка для моей игры, которая всегда будет за персонажем игрока и врагами. Я просто набрал:

background = pygame.image.load("mypicture")

в верхней части моего кода, перед тем как запустить l oop. Затем я блею изображение, набирая:

screen.blit(background, (0, 0))

, если я блею изображение ДО запуска l oop, игра совсем не затягивает, но везде, где движется персонаж игрока, он оставляет контур, который никогда не идет по пути, как показано Однако, если я перетаскиваю изображение во время работы l oop, ранее упомянутый эффект трассировки не происходит, но вместо этого геймер работает безумно медленно.

Стоит упомянуть код моего персонажа:

def Player(x, y):
    screen.blit(PlayerImg, (x, y))

Я вызываю функцию в конце выполнения l oop, прямо перед

pygame.display.update

. Игрок находится в координатах x, y, которые определяются на основе ввода с клавиатуры.

1 Ответ

1 голос
/ 21 апреля 2020

Попробуйте добавить метод преобразования: background = pygame.image.load("mypicture").convert(). Это улучшит производительность. Больше информации здесь [https://www.pygame.org/docs/ref/surface.html#pygame .Surface.convert] И если вы хотите, чтобы ваш фон обновился sh, вы должны вызвать его внутри l oop.

...