如何通过单击键盘上的按钮删除 pygame 中的精灵?

How do I remove a sprite in pygame by clicking a button on my keyboard?

好的,所以我想在单击 a 按钮以显示精灵向左移动时删除精灵。 这是我的代码

import pygame
import os

pygame.init()

#### CONSTANTS ####


WIDTH, HEIGHT = 1000, 600

WIN = pygame.display.set_mode((WIDTH, HEIGHT))

BACKGROUND = pygame.transform.scale(pygame.image.load(os.path.join('Assets', 'Background.jpg')), (WIDTH, HEIGHT))

MAIN_CHARACHTER = pygame.transform.scale(pygame.image.load(os.path.join('Assets', 'Main_sprite.png')), (70, 90))

MAIN_CHARACTER_LEFT = pygame.transform.scale(pygame.image.load(os.path.join('Assets', 'Main_sprite_left.png')), (70, 90))

FPS = 60

VEL = 8


###################

pygame.display.set_caption('Cog runnr')

def draw_window(man):
    WIN.blit(BACKGROUND, (0, 0))
    WIN.blit(MAIN_CHARACHTER, (man.x, man.y))

    

def handle_movement(keys_pressed, man):
    if keys_pressed[pygame.K_a] and man.x + 10 > 0: #LEFT
        WIN.remove(MAIN_CHARACHTER)

def main():
    man = pygame.Rect(350, 375, 70, 90)
    gameLoop = True
    clock = pygame.time.Clock()
    while gameLoop:
        clock.tick(FPS)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                gameLoop = False
                pygame.QUIT
        keys_pressed = pygame.key.get_pressed()
        draw_window(man)
        handle_movement(keys_pressed, man)
        
        pygame.display.update()

if __name__ == '__main__':
    main()

请检查 handle_movement 功能并告诉我如何删除主角以显示 Main_sprite_left 图像

这是我的错误

Traceback (most recent call last):
  File "d:\Programming\Python\pygame\Cog_runner\main.py", line 55, in <module>
    main()
  File "d:\Programming\Python\pygame\Cog_runner\main.py", line 50, in main
    handle_movement(keys_pressed, man)
  File "d:\Programming\Python\pygame\Cog_runner\main.py", line 36, in handle_movement
    WIN.remove(MAIN_CHARACHTER)
AttributeError: 'pygame.Surface' object has no attribute 'remove'

您不能“删除”屏幕上绘制的内容。屏幕上的对象只是一堆彩色像素。如果你不想看到某些东西,就不要画它。每一帧都会重新绘制场景。

根据状态变量绘制对象 (draw_man)。按键按下时改变状态:

def draw_window(man, draw_man):
    WIN.blit(BACKGROUND, (0, 0))
    if draw_man:
        WIN.blit(MAIN_CHARACHTER, (man.x, man.y))

def handle_movement(keys_pressed, man):
    draw_man = True
    if keys_pressed[pygame.K_a] and man.x + 10 > 0: #LEFT
        draw_man = False
    return draw_man

def main():
    man = pygame.Rect(350, 375, 70, 90)
    draw_man = True
    gameLoop = True
    clock = pygame.time.Clock()
    while gameLoop:
        clock.tick(FPS)
        
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                gameLoop = False
                pygame.QUIT
        
        keys_pressed = pygame.key.get_pressed()
        draw_man = handle_movement(keys_pressed, man)

        draw_window(man, draw_man)
        pygame.display.update()

if __name__ == '__main__':
    main()