Pygame等待用户按键一键

时间:2013-12-23 17:31:05

标签: python-3.x pygame keypress

我正在搜索一个方法,程序停止并等待用户按下特定键。我可以用while循环来实现这个吗?如果存在等待的内置函数,我需要最好的算法,以避免循环。 我在official website of pygame上找到了一些信息,但没有任何帮助。

以下是测试算法,但不起作用:

key = "f"
while key != "K_f":
     key = pygame.key.get_pressed()
     if key[Keys.K_f]:
         do something...

2 个答案:

答案 0 :(得分:3)

您可以使用while循环和事件队列来执行此操作:

from pygame.locals import *
def wait():
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN and event.key == K_f:
                return

答案 1 :(得分:2)

如果您正在等待按下某个键,则可以使用event.wait()函数。这很有用,因为它不需要大量处理。

import pygame
from pygame.locals import *

pygame.event.clear()
while True:
    event = pygame.event.wait()
    if event.type == QUIT:
        pygame.quit()
        sys.exit()
    elif event.type == KEYDOWN:
        if event.key = K_f:
            do something...

请注意,event.wait()等待事件出现在事件缓存中,应首先清除事件缓存。

pygame.event documentation