Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 忽略PyGame中的多个按键_Python_Pygame - Fatal编程技术网

Python 忽略PyGame中的多个按键

Python 忽略PyGame中的多个按键,python,pygame,Python,Pygame,我有一个程序,在这个程序中,用户会看到一个单词,并且必须根据这个单词做出两个关键的决定 每次出现这个词时,我都会在下面的代码中监视他们的按键。如果他们给出了可接受的响应1或0,它将返回该响应,但也会在执行此操作之前将程序延迟1000毫秒,此时将显示下一个单词: pygame.event.clear() while True: for event in pygame.event.get(): #check for keypresses if event.key == p

我有一个程序,在这个程序中,用户会看到一个单词,并且必须根据这个单词做出两个关键的决定

每次出现这个词时,我都会在下面的代码中监视他们的按键。如果他们给出了可接受的响应1或0,它将返回该响应,但也会在执行此操作之前将程序延迟1000毫秒,此时将显示下一个单词:

  pygame.event.clear()
  while True:
    for event in pygame.event.get(): #check for keypresses
      if event.key == pygame.K_1:
        wait(1000) #wait 1000 ms if they make a response before the next word is presented
        return 1
      elif event.key == pygame.K_0:
        wait(1000)
        return 0
我遇到的问题是,如果在给定的试验中,用户变得不耐烦,并在wait1000调用期间开始按下按钮,那么当调用上述代码时,这些按钮最终会注册为下两个显示的单词


开始时的pygame.event.clear应该清除事件队列,这样,如果用户已经按下一些键,它就会清除队列并只检查新的响应。我做错什么了?

不要睡觉。而是存储上一次按键事件的时间和按键

如果当前事件是同一个键,并且自第一次按此键起的时间小于1秒,则闪烁或嘟嘟声表示程序未挂起,但不接受此特定键

如果密钥与上次注册的密钥不同,请存储时间和密钥,然后按正常方式处理

始终为用户的行为提供即时反馈,即使反馈是不受欢迎的