python - 停止 Pygame 中的多个键盘输入

标签 python pygame

我有一些 python 代码,它使用 pygame 窗口来确定按下的键。当按下一个键时,代码会开始执行一些操作,然后返回查看下一个按下的键可能是什么。

我遇到的问题是,如果用户重复按下某个键,即使“代码开始执行操作”,pygame 似乎也会记住按下的内容,而不是等待下一次按键。我想要的是让代码在“开始做事情”完成时忽略任何按键,然后一旦完成,就得到下一个按键。希望这是有道理的!

import pygame
import time

pygame.init()

screen = pygame.display.set_mode((450,282))
screen.fill((0,0,0))
pygame.display.flip()
clock = pygame.time.Clock()
done = False

def go_and_do_things():
    print("doing things")
    time.sleep(2)
    print("things done")

# Loop as long as done == False
while not done:    
    for event in pygame.event.get():  # User did something
        if event.type == pygame.KEYDOWN:
            keypressedcode = event.key # This is the ASCII code
            print("keypressedcode is " + str(keypressedcode))
            go_and_do_things()


        elif event.type == pygame.QUIT:  # If user clicked close
            done = True  # Flag that we are done so we exit this loop

    clock.tick(60)

time.sleep(4)
pygame.quit()

最佳答案

您可以使用pygame.event.clear 。如下所示,它将在 go_and_do_things() 期间丢弃所有按键。

while not done:    
    for event in pygame.event.get():  # User did something

         # Any key down
        if event.type == pygame.KEYDOWN:

            keypressedcode = event.key # This is the ASCII code
            print("keypressedcode is " + str(keypressedcode))

            go_and_do_things()
            pygame.event.clear(eventtype=[pygame.KEYDOWN,
                                          pygame.KEYUP)


        elif event.type == pygame.QUIT:  # If user clicked close
            done = True  # Flag that we are done so we exit this loop

    clock.tick(60)

关于python - 停止 Pygame 中的多个键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308608/

相关文章:

python - 如何使用 ElementTree 注释掉 XML <Tag>

python - pandas如何获取当前连续正数的个数?

Python Pygame : error when using python. 对象中的draw.rect

python - 如何使用 rotozoom 在 pygame 中设置缩放和旋转动画

python - 在 zeromq/python 中使用 pyobj 子函数时设置主题

python - 在 DynamoDB 表中存储项目,其中键和范围键可能重叠

python - 检查数据库模型的唯一性。通过 Flask-SQLAlchemy 插入或忽略

python - Pygame 没有名为 'math' 的模块

python - 如何获得从图像创建的 pygame 矩形的正确尺寸

python - PyGame 不播放音乐