在我用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分支退出。我应该如何解决这个问题?
答案 0 :(得分:0)
我实际上通过添加来解决了此问题
for event in pygame.event.get():
pass
在下一个pygame.event.get()循环之前。第一个循环消耗了序列中发生的其他事件,因此第二个循环将仅处理序列播放后给出的输入。