Как удалить изображение после перемещения его в Pygame? - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь удалить предыдущее изображение после перемещения. Это код того, как я перемещаю изображение (unit0

def Move(x, y):
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            Background.blit(RedInfantry,(-x*64, 0))
        if event.key == pygame.K_RIGHT:
            Background.blit(RedInfantry,(x*64, 0))
        if event.key == pygame.K_UP:
            Background.blit(RedInfantry,(0, -y*64))
        if event.key == pygame.K_DOWN:
            Background.blit(RedInfantry,(0, y*64))

Начальное место находится в левом верхнем углу, а не там, где находится изображение. Более того, я не знаю, как удалить предыдущее изображение после перемещения. Если я дважды перемещаюсь в разных направлениях, он создает отдельные изображения вместо удаления последнего. This is the image when the down and right button is pressed

Как удалить предыдущее изображение?

1 Ответ

0 голосов
/ 17 марта 2020

Исходя из одного из ваших предыдущих вопросов ( Загрузка изображения с помощью pygame ), вы должны изменить положение изображения в сетке:

if event.type == pygame.KEYDOWN:

    new_x, new_y = x, y
    if event.key == pygame.K_LEFT:
        new_x -= 1
    if event.key == pygame.K_RIGHT:
        new_x += 1
    if event.key == pygame.K_UP:
        new_y -= 1
    if event.key == pygame.K_DOWN:
        new_x += 1

    grid[new_x][new_y] = grid[x][y]
    grid[x][y] = None

Конечно, вы должны перерисовать всю сцену (сетку и изображения) в каждом кадре.
(Как в ответе на Загрузка изображения с использованием pygame )

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