pygame - клавиша возврата, нажатая перед обработчиком event.key, приводит к немедленной обработке блока event.key - PullRequest
0 голосов
/ 01 февраля 2019

В моей программе, созданной с помощью pygame, у меня есть вступительная последовательность, которая перетаскивает в общей сложности 3 текстовых поля на экран, разнесенные друг от друга, поэтому появляется одно, затем следующее, а затем следующее.В течение этого времени у меня нет опроса событий, так как я хочу, чтобы вся последовательность воспроизводилась в течение, вероятно, около 10 секунд.Однако после воспроизведения этой последовательности в правом нижнем углу появляется текст «Продолжить», показывающий пользователю, что нужно нажать «Возврат», чтобы перейти к следующему слайду.Вот где у меня затем появляется мой обработчик событий, например, так:

exited = False
    while not exited:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exited = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RETURN:
                    exited = True

Однако, если пользователь в любой момент в этой последовательности нажимает Return, когда поток управления попадает в обработчик события, он просто сразу выходит черезpygame.KEYDOWN ветка.Как мне исправить это?

1 Ответ

0 голосов
/ 01 февраля 2019

Я решил это, просто добавив

for event in pygame.event.get():
    pass

перед следующим циклом pygame.event.get ().Первый использует другие события, которые произошли в последовательности, так что второй цикл будет обрабатывать только входные данные, заданные после воспроизведения последовательности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...