Python Pygame:如何限制此程序在显示某个内容时不获取键盘事件?

Python Pygame:如何限制此程序在显示某个内容时不获取键盘事件?,python,pygame,keyboard-events,Python,Pygame,Keyboard Events,我有一个这样的程序。如果有问题,它工作得很好! 按下“向下”键可在屏幕上显示一个圆圈,持续5秒,同时按下“向下间隔”和“向上间隔”可执行其他操作(计算按下时间)。但我不希望它在显示圆圈时“计算”。换句话说,我不希望它在显示圆圈时获取键盘事件(如果获取键盘事件,则不执行任何操作)。为此,我添加了“p”作为条件。它不知怎么起作用了!我的意思是,在圆圈显示期间,即使按“空格”键,程序也不会计算。但问题是当圆圈表演结束时。它的计算方式就像在圆圈显示时间后按“空格”键一样。我的意思是,如果你在圆圈显示时间

我有一个这样的程序。如果有问题,它工作得很好! 按下“向下”键可在屏幕上显示一个圆圈,持续5秒,同时按下“向下间隔”和“向上间隔”可执行其他操作(计算按下时间)。但我不希望它在显示圆圈时“计算”。换句话说,我不希望它在显示圆圈时获取键盘事件(如果获取键盘事件,则不执行任何操作)。为此,我添加了“p”作为条件。它不知怎么起作用了!我的意思是,在圆圈显示期间,即使按“空格”键,程序也不会计算。但问题是当圆圈表演结束时。它的计算方式就像在圆圈显示时间后按“空格”键一样。我的意思是,如果你在圆圈显示时间按“空格”键,它会在圆圈显示结束后立即进行计算。 这类似于程序即使在圆圈显示期间也会获取关键事件,但会等待条件(p==0)变为真。 请帮我解决这个问题

p = 0   
gameloop = True
while gameloop:

for event in pygame.event.get():

    if (event.type == pygame.QUIT):
            gameloop = False

    if event.type == pygame.KEYDOWN:
        if (event.key == pygame.K_DOWN)  :

                p += 1
                start_time = time.time()
                end_time = start_time + 5
                while end_time > time.time():
                    # showing a circle on display 
                p -= 1 

    if (event.type == pygame.KEYDOWN):
        if (event.key == pygame.K_SPACE)  and (p == 0)  :

            # Do something

    if (event.type == pygame.KEYUP)  :
        if (event.key == pygame.K_SPACE) and (p == 0) :

            # Do somthing

我发现,如果你在圆圈表演时间按“空格”键,它在那一刻不会运行,但当圆圈表演结束后,它会立即运行。它喜欢在圆圈显示时间后立即按下“空格”。因此,只要系统运行时间(如我所说,此程序计算“空格”键按下时间:空格上下时间-空格下下下时间),在循环显示时间内按下“空格”键,每次返回的时间约为0.002秒,即系统运行时间。为了解决我的问题,我添加了另一个条件:h+0.01
start_time = time.time()
end_time = start_time + ex
while end_time > time.time():
        # Drawing a circle
h = time.time()

      if (event.type == pygame.KEYDOWN):

        if (event.key == pygame.K_SPACE)  and ( h+0.01 < time.time())  :
               # Do calculations
start\u time=time.time()
结束时间=开始时间+ex
而end_time>time.time()
#画圆
h=时间。时间()
如果(event.type==pygame.KEYDOWN):
如果(event.key==pygame.K_SPACE)和(h+0.01
你所说的“展示某物”是什么意思?展示某物,我的意思是画一个圆圈。