首页 > 解决方案 > pygame KEYUP 只注册 KEYDOWN

问题描述

当我按下空格键时,“向上”和“向下”同时打印,但是当我释放时,什么也没有发生。

while True:

    pygame.display.set_mode((600,600))

    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:

            if event.key == pygame.K_SPACE:                    
                print('down')

        if event.type == pygame.KEYUP:

            if event.key == pygame.K_SPACE:
                print('up')

        if event.type == pygame.QUIT:

            pygame.quit()
            exit()

标签: pythonpygamekeydownkeyup

解决方案


您正在display为游戏的每一帧创建一个新的。您只需要在游戏循环之外创建一次显示。它也应该分配给一个变量,例如,如果您想向它绘制(blit)项目,您将需要它。

display = pygame.display.set_mode((600,600))

# Game loop
while True:    
    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:
    # ...

推荐阅读