【问题标题】:Pygame cant get events inside nested while loopPygame无法在嵌套的while循环中获取事件
【发布时间】:2021-03-27 06:21:14
【问题描述】:

到目前为止,我已经查看了几个来源,但我似乎无法弄清楚为什么 pygame 不会在我的暂停函数中抓取事件以取消暂停。

def pause():
    paused = True

    while paused:
        for event in pygame.event.get():
            if event == pygame.QUIT:
                pygame.quit()
                quit()

            elif event == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    paused = False

请记住,这嵌套在另一个运行游戏的 while 循环中,该函数被调用,陷入无限循环,但即使使用 get keys 功能也无法检测到按键退出。有人回答了吗?

【问题讨论】:

    标签: python pygame event-handling nested-loops infinite-loop


    【解决方案1】:

    pygame.event.get() 返回pygame.event.Event() 对象的列表。您必须测试eventtype 属性是否为pygame.KEYDOWN

    elif event == pygame.KEYDOWN:

    elif event.type == pygame.KEYDOWN:
    

    def pause():
        paused = True
    
        while paused:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    quit()
    
                elif event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE:
                        paused = False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      相关资源
      最近更新 更多