Pygame : event.type 仅适用于一种情况

Pygame : event.type works only for one case

我的 pygame 代码有问题,它似乎正确但无法正常工作。
我想根据按下的键执行不同的操作;当我放两个案例时,只有一个有效。 我把我的代码放在下面:

        gamestate.draw(window)
        pygame.display.update()

        for event in pygame.event.get():
            if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.type == pygame.K_ESCAPE):
                finis = True
            if (event.type == pygame.KEYDOWN and event.key == pygame.K_UP):
                print("ok")
        pygame.display.update()

在这里,当我按下向上键时,我的代码在终端中打印“ok”,但当我按住退出键时不会退出。
不是这个特殊情况不起作用,在我按下转义键时它退出之前,当我按下向上键时没有打印“确定”。
你有办法解决我的问题吗?非常感谢!

pygame.K_ESCAPE 不是事件类型,但您检查 event.type:

... and event.type == pygame.K_ESCAPE

应该是:

... and event.key == pygame.K_ESCAPE

通常,如果您必须检查 pygame.KEYDOWN 事件中的多个键,则使用嵌套的 ifs:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_ESCAPE:
        finis = True
    if event.key == pygame.K_UP:
        print('ok')

你还需要在循环中只调用一次pygame.display.update(很可能在最后)而不是两次