首页 > 解决方案 > 在pygame中移动图像后如何删除图像?

问题描述

我试图在移动后删除以前的图像。这是我如何移动图像的代码(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))

起始位置在左上角,而不是图像所在的位置。此外,我不知道如何删除以前的图像,一旦它被移动。如果我在不同的方向移动两次,它会创建分离图像而不是删除最后一个图像。 这是按下向下和向右按钮时的图像

我怎样才能删除以前的图像?

标签: pythonimagepygamegrid

解决方案


根据您之前的一个问题(使用 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 加载图像
的答案中一样)


推荐阅读