首页 > 解决方案 > pygame事件KEYDOWN导致一次性激活循环

问题描述

我遇到了 KEYDOWN 事件的问题。由于某种原因,当我按住按钮时,它会导致重复输入。这是我的代码:

import pygame
 

def main():
     
    
    pygame.init()
    
    pygame.display.set_caption("minimal program")
     
    
    screen = pygame.display.set_mode((240,180))
     
    
    running = True
    
    pygame.key.set_repeat()
    
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                running = False
            if event.type == pygame.KEYDOWN:
                print("pressed")


if __name__=="__main__":
    main()

我尝试使用 pygame.key.set_repeat() 并没有用。我还打开了一个新文件来检查我当前的文件是否有问题并且没有任何改变。如果有人知道原因,请帮忙。

编辑:经过大量检查并重新启动后,我注意到如果我重新启动 jupyter(这是我编写代码的地方),第一次运行不会有这个问题,但之后的所有问题都会出现,直到我再次重新启动。我意识到由于某种原因 pygame.quit() 函数破坏了 KEYDOWN 并产生了我上面描述的错误(我删除了这一行并且一切正常)。

如果有人知道为什么会发生这种情况,请向我解释

标签: pythonpygamepygame2

解决方案


推荐阅读