【发布时间】:2012-02-10 13:44:57
【问题描述】:
我想知道是否有一种方法可以使用poll() 或get() 而无需从队列中删除事件。
在我的游戏中,我在不同的地方检查输入(不仅在主循环中),有时我需要在不同的地方检查相同的事件,但是当我将它从队列中删除时检查它。我尝试使用peek(),但问题是我无法获得与完成事件对应的密钥。
while 1:
event = pygame.event.poll()
if event.type == KEYDOWN:
return event.key
else:
pass
#works but removes event from the queue
这样可以获得事件对应的key,但是peek()不能:
pygame.event.peek(pygame.KEYDOWN).key
#dosent work
但是我不能使用第一种方法,因为它会从队列中删除事件,所以我无法检查程序中其他地方的关键事件。
我不太明白queue 是如何工作的,所以也许我只是弄错了,但我在不同的位置尝试了第一个,并且仅在我第一次检查它的工作时。
我的目标是在我的游戏中检查不同类别的事件。
感谢您的帮助
【问题讨论】:
标签: python events queue pygame