Pygame waiting the user to keypress a key

…衆ロ難τιáo~ 提交于 2019-12-20 03:16:38

问题


I am searching a method, where the program stops and waiting for a spesific key to be pressed by the user. May I can implement this one with a while loop? I need the best algorithm, if there exist a build-in function of waiting, to avoid the loop. I found several information on the official website of pygame, but nothing help.

Here is a testing algorithms but won't work:

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

回答1:


You could do it with a while loop and an event queue:

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:


If you are waiting for a key to be pressed you can use the event.wait() function. This is useful, because it does not require a-lot of processing.

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...

Note that event.wait() waits for events to appear in the event cache, the event cache should be cleared first.

pygame.event documentation



来源:https://stackoverflow.com/questions/20748326/pygame-waiting-the-user-to-keypress-a-key

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!