Pygame, move a square on the screen, but can not erase the previous movements
<p>This is my first post in StackOverflow, hope you guys can help a newbie programmer. It's Pygame Python simple ask.</p>

<p>I am trying to move a square on the screen, but can not erase the previous movements.</p>

<pre><code>import pygame

pygame.init()
screen = pygame.display.set_mode((400,300))
pygame.display.set_caption("shield hacking")
JogoAtivo = True
GAME_BEGIN = False
# Speed in pixels per frame
x_speed = 0
y_speed = 0
cordX = 10
cordY = 100


def desenha():
    quadrado = pygame.Rect(cordX, cordY ,50, 52)

    pygame.draw.rect(screen, (255, 0, 0), quadrado)
    pygame.display.flip()



while JogoAtivo:
    for evento in pygame.event.get():
        print(evento);
    #verifica se o evento que veio eh para fechar a janela
        if evento.type == pygame.QUIT:
               JogoAtivo = False
               pygame.quit();
        if evento.type == pygame.KEYDOWN:     
            if evento.key == pygame.K_SPACE:
                   print('GAME BEGIN')
                   desenha()
                   GAME_BEGIN = True;
            if evento.key == pygame.K_LEFT and GAME_BEGIN:   
                   speedX=-3
                   cordX+=speedX
                   desenha()


            if evento.key == pygame.K_RIGHT and GAME_BEGIN:
                   speedX=3
                   cordX+=speedX
                   desenha()   
</code></pre>

<p>I am also a newbie and I am doing something similar and I hope this helps </p>

<pre><code>import pygame

clock=pygame.time.Clock() #the frames per second BIF in pygame
pygame.init()
FPS=30
display_width=800
display_height=600
white=(255,255,255)
black=(0,0,0)
block_size=10
gameExit=False
lead_x = display_width / 2
lead_y = display_height / 2

lead_x_change = 0  # 0 beacuse we will not be changing the position in the beginning
lead_y_change = 0

gameDisplay=pygame.display.set_mode((display_width,display_height))

while not gameExit: #game loop

    for event in pygame.event.get():  #event handling BIF in pygame EVENT LOOP
        #print(event) # prints out the position of the mouse and the buttons pressed when in game window
        if event.type== pygame.QUIT: #if the user presses the [x] in game window, it quits the window
            gameExit=True    

    if event.key == pygame.K_LEFT:
                lead_x_change = -block_size #block size is number of pixels moved in one loop
                lead_y_change=0

            elif event.key==pygame.K_RIGHT:
                lead_x_change=  block_size
                lead_y_change=0

            elif event.key==pygame.K_UP:
                lead_y_change= -block_size
                lead_x_change=0

            elif event.key==pygame.K_DOWN:
                lead_y_change= block_size
                lead_x_change=0
    lead_y+=lead_y_change
    lead_x+=lead_x_change

   gameDisplay.fill(white) #fills the display surface object, backgroud color is the parameter filled in        

   pygame.draw.rect(gameDisplay,black,[lead_x,lead_y,block_size,block_size])

   pygame.display.update() #after done with all the action,update the surface

   clock.tick(FPS) #runs the game at 30FPS

pygame.quit()
quit()
</code></pre>

python pygame move rect