Pygame等待用户按键一键

问题描述 投票:2回答:2

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

这是一个测试算法,但不起作用:

key = "f"
while key != "K_f":
     key = pygame.key.get_pressed()
     if key[Keys.K_f]:
         do something...
python-3.x pygame keypress
2个回答
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

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

© www.soinside.com 2019 - 2024. All rights reserved.