pygame KEYUP registers only KEYDOWNs

Viewed 66

When I press the spacebar "up" and "down" is printed simultaneous, however when I release, nothing is happening.

while True:

    pygame.display.set_mode((600,600))

    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:

            if event.key == pygame.K_SPACE:                    
                print('down')

        if event.type == pygame.KEYUP:

            if event.key == pygame.K_SPACE:
                print('up')

        if event.type == pygame.QUIT:

            pygame.quit()
            exit()
1 Answers

You're creating a new display every single frame of your game. You need to create the display only once, on the outside of your game loop. It should also be assigned to a variable, as you'll need it if you want to draw (blit) items to it, for example.

display = pygame.display.set_mode((600,600))

# Game loop
while True:    
    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:
    # ...
Related