Как настроить перерисовку фигуры pygame?

Всех приветствую и поздравляю с наступающим праздником. Вопрос следующий:
Планирую создать окно, в котором с помощью стрелок можно управлять фигурой (максимально упростил идею). Поле на основе массива создаётся корректно. Фигура, которая должна двигаться, тоже появляется. Но при попытке переместить её на поле рисуется новая фигура с другими координатами, а старая остаётся на своём месте. Как сделать так, чтобы старая фигура после нажатия пропадала?
Код программы:

import pygame

pygame.init()
pygame.display.set_caption('Миникарта')

game_screen = pygame.display.set_mode((400, 400))

gamer_x = 10
gamer = pygame.Surface((gamer_x, 100))
gamer.fill((250, 190, 4))

run = True
while run:
    pygame.time.delay(30)
    key_press = pygame.key.get_pressed()
    gamer_x += 1
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    game_screen.blit(gamer, (gamer_x, 100))
    pygame.display.update()

Заранее спасибо

P.S. Убрал код, отвечающий за нажатия и сделал тривиальное повышение координаты x


Ответы (1 шт):

Автор решения: gord1402

Нужно закрашивать экран перед рисованием следующего кадра. Вот так:

import pygame

pygame.init()
pygame.display.set_caption('Миникарта')

game_screen = pygame.display.set_mode((400, 400))

gamer_x = 10
gamer = pygame.Surface((gamer_x, 100))
gamer.fill((250, 190, 4))

run = True
while run:
    # Закрашиваем экран перед отрисовкой
    game_screen.fill((0, 0, 0))

    pygame.time.delay(30)
    key_press = pygame.key.get_pressed()
    gamer_x += 1
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    game_screen.blit(gamer, (gamer_x, 100))
    pygame.display.update()
→ Ссылка