pygame KEYUP регистрирует только KEYDOWN - PullRequest
2 голосов
/ 01 апреля 2020

Когда я нажимаю пробел "вверх" и "вниз" печатается одновременно, однако, когда я отпускаю, ничего не происходит.

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 Ответ

2 голосов
/ 01 апреля 2020

Вы создаете новый display каждый кадр вашей игры. Вам нужно создать дисплей только один раз, на внешней стороне вашей игры l oop. Он также должен быть присвоен переменной, так как он понадобится вам, если вы хотите нарисовать (блиц) элементы, например.

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

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

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