2012-04-01 1 views
10

В настоящее время спрайт перемещается только по одному пикселю при каждом нажатии клавиши. Как я могу заставить спрайта сантехника постоянно двигаться, когда удерживается левая или правая клавиша?Как сделать перемещение спрайта при удерживании клавиши

while running: 
    setup_background() 
    spriteimg = plumberright 

    screen.blit(spriteimg,(x1, y1)) 

    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      running = False 
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_UP: 
       x1 = x1 + 0 
       y1 = y1 - 1 
      elif event.key == pygame.K_DOWN: 
       x1 = x1 + 0 
       y1 = y1 + 1 
      elif event.key == pygame.K_LEFT: 
       x1 = x1 -1 
       y1 = y1 + 0 
      elif event.key == pygame.K_RIGHT: 
       x1 = x1 + 1 
       y1 = y1 + 0 

    pygame.display.flip() 
    clock.tick(120) 

ответ

15

Для этого вы можете использовать pygame.key.get_pressed.

пример:

while running: 
    keys = pygame.key.get_pressed() #checking pressed keys 
    if keys[pygame.K_UP]: 
     y1 -= 1 
    if keys[pygame.K_DOWN]: 
     y1 += 1 
+1

Это работает! Спасибо чувак! – enrique2334