首页 > 解决方案 > pygame - 在 event.key 处理程序导致立即处理 event.key 块之前返回键按下

问题描述

在我用 pygame 制作的程序中,我有一个介绍序列,它总共将 3 个文本框传送到屏幕上,彼此间隔时间,所以出现一个,然后是下一个,然后是之后的一个。在此期间我没有事件轮询,因为我希望整个序列播放总共可能大约 10 秒。然而,在这个序列播放之后,我在右下角出现了一个“继续”文本,显示用户按下 Return 键以继续下一张幻灯片。这就是我的事件处理程序,如下所示:

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 分支退出。我应该如何解决这个问题?

标签: pythonpygame

解决方案


我实际上只是通过添加解决了这个问题

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

在我的下一个 pygame.event.get() 循环之前。第一个循环消耗序列中发生的其他事件,因此第二个循环将只处理序列播放后给出的输入。


推荐阅读