微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame 无法在嵌套的 while 循环中获取事件

如何解决Pygame 无法在嵌套的 while 循环中获取事件

到目前为止,我已经查看了几个来源,但我似乎无法弄清楚为什么 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 函数也无法检测到按键逃逸。有人有答案吗?

解决方法

pygame.event.get() 返回 pygame.event.Event() 对象的列表。您必须测试 typeevent 属性是否为 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。