pygame角色移动

为什么控制方块移动时经过的地方会有方块的图片残留啊
代码如下(左右键控制移动,方块运动方向和方向键相反的)
主程序

import pygame
from floor import *
pygame.init()
pygame.display.set_caption("game")
screen = pygame.display.set_mode((800,600))
floor_list=[]
weight = 2
speed = 10

for i in range(weight):
    for j in range(weight):
        floor_list.append(floor(i*weight+j+1, weight,50))
floor_number = 0
for floor_number in floor_list:


    floor_number.show(screen, 50)

print(floor_list)

while True:
    for event in pygame.event.get():
# 固定写法,event,get可以一次获取多个事件,所以要循环遍历for event in pygame .event.get() :# 判断是否退出《点x)
        if event.type == pygame.QUIT:
# 退出函数《一般不会这么简单,要保存)
            exit()



        if event.type == pygame.KEYDOWN:

            if event.key == pygame.K_LEFT:

                for floor_number in floor_list:

                    floor_number.rect.centerx += speed
                    floor_number.show(screen, 50)

            if event.key == pygame.K_RIGHT:

                for floor_number in floor_list:

                    floor_number.rect.centerx -= speed
                    floor_number.show(screen, 50)
            if event.key == pygame.K_DOWN:

                for floor_number in floor_list:

                    floor_number.rect.centery -= speed
                    floor_number.show(screen, 50)
            if event.key == pygame.K_UP:

                for floor_number in floor_list:

                    floor_number.rect.centery += speed
                    floor_number.show(screen, 50)

    pygame.display.update()


floor文件

import pygame

class floor():
    def __init__ (self,number,weight,jiange):

        self.number = number
        self.image = pygame.image.load(r'C:\Program Files\JetBrains\PyCharm Community Edition 2022.2.4\bin\game\picture\floor')
        self.rect = self.image.get_rect()
        self.rect.centerx = (self.number-1)%weight*jiange
        self.rect.centery = (self.number-1)//weight*jiange

        self.x = 0
        self.y = 0
    def show(self,screen,size):

        self.shape = pygame.transform.scale(self.image, (size, size))
        screen.blit(self.shape, self.rect)

起点在左上方

img


移动到中间

img

我想要方块从右上角开始移动不会留下残影

要有清屏呀