title: pygame hold key to move
body: <p>I'm trying to move the player left in the four main directions, but it only moves when pressed not held down, so I have to repeatedly press the button to move across the screen and up and down don't work.</p>
  
  <pre><code>import pygame
  
  #Start pygame
  
  pygame.init()
  
  #Window/Screen/Display
  
  display_x = 1280
  display_y = 720
  display = pygame.display.set_mode((display_x,display_y))
  pygame.display.set_caption('Platforms')
  
  clock = pygame.time.Clock()
  
  #Colors
  
  black = (0,0,0)
  green = (1,166,17)
  
  #Images
  character = pygame.image.load('character.gif')
  def chrctr(x,y):
  display.blit(character,(x,y))
  x_c = (display_x  / 2)
  y_c = (display_y / 2)
  x_change = 0
  y_change = 0
  
  floor_1 = pygame.image.load('wood.jpg')
  def floor(x,y):
      display.blit(floor_1,(x,y))
  x = (display_x * 0)
  y = (display_y * 0.9)
  
  not_dead=True
  while not_dead:
      for event in pygame.event.get():
          if (event.type==pygame.QUIT):
              not_dead=False 
  
          if event.type == pygame.KEYDOWN:
              if event.key == pygame.K_LEFT:
                  x_change = - 5
              elif event.key == pygame.K_RIGHT:
                  x_change = 5
          if event.key == pygame.K_UP:
                  y_change = - 5
          elif event.key == pygame.K_DOWN:
                  y_change = 5
  
  
          if event.type == pygame.KEYUP:
              if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                  x_change = 5
  
      x_c += x_change
      if event.type == pygame.KEYUP:
              if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
                  y_change = 0
  
      y_c += y_change
  
      display.fill(green) 
      pygame.draw.rect(display, black, [0, 550, 200, 50])
      pygame.draw.rect(display, black, [0, 450, 200, 50])
      pygame.draw.rect(display, black, [0, 350, 200, 50])
      pygame.draw.rect(display, black, [0, 250, 200, 50])
      pygame.draw.rect(display, black, [0, 150, 200, 50])
      pygame.draw.rect(display, black, [0, 50, 200, 50])
      pygame.draw.rect(display, black, [1080, 550, 200, 50])
      pygame.draw.rect(display, black, [1080, 450, 200, 50])
      pygame.draw.rect(display, black, [1080, 350, 200, 50])
      pygame.draw.rect(display, black, [1080, 250, 200, 50])
      pygame.draw.rect(display, black, [1080, 150, 200, 50])
      pygame.draw.rect(display, black, [1080, 50, 200, 50])
  
      floor(0,display_y * 0.9)
      floor(236, display_y * 0.9)
      floor(472, display_y * 0.9)
      floor(708, display_y * 0.9)
      floor(944, display_y * 0.9)
      floor(1180, display_y * 0.9)
      chrctr(x_c, y_c)
  
  
      pygame.display.update()
      clock.tick(60)
  print ("Hello")
  
  pygame.quit()
  </code></pre>