如何使用pygame.key.get_pressed()获得一个输入?

时间:2019-07-05 19:56:01

标签: python pygame

我想用pygame一次按下多个键时执行一个动作,例如,当同时按下a和b时,我的程序会显示“ hi”。我尝试了pygame.KEYDOWN,但是找不到用这种方法检测多个输入的方法。当我使用pygame.key.get_pressed()时,我得到了很多打印语句,因为我只想要一个打印语句,只要按下键就不需要打印语句。有人可以帮我解决这个问题吗?

目前,我有以下内容:

keys = pygame.key.get_pressed()  # checking pressed keys
        if keys[pygame.K_r] and keys[pygame.K_l]:
            print('hi')
        elif keys[pygame.K_l]:
            print('bye')

但是当我按r和l时,hi被打印了很多次,但是我只希望它打印一次。

1 个答案:

答案 0 :(得分:0)

KEYDOWN事件拥有一个键。要执行您想要的操作,可以将两种方法结合起来。

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        sys.exit()
    elif event.type == pygame.KEYDOWN:
        keys = pygame.key.get_pressed()
        if event.key == pygame.K_r and keys[pygame.K_l]:
            print("Hi")
        elif event.key == pygame.K_l:
            print('bye')

基本上,您可以从要同时按下的两个键之一中捕获事件,并检查是否也按下了另一个键。