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

pygame.key.get_pressed似乎被冻结了

如何解决pygame.key.get_pressed似乎被冻结了

我试图为我的游戏制作一个菜单系统,从主菜单开始,然后按空格键进入教程,然后再按空格键进入游戏。问题是我需要确保玩家在让他们退出教程之前已经释放了空间,但是pygame.key.get_pressed()报告退出菜单时所按下的相同键仍然被按下,即使它们不是。这是我的代码

def menu(normal=True):
    global keys
    while True:
        pygame.time.wait(33)
        keys = pygame.key.get_pressed()
        if keys[pygame.K_SPACE]:
            return True
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return False

#Main menu
displayMenuText(0)
menu()

#Tutorial
displayMenuText(1)
while pygame.key.get_pressed()[pygame.K_SPACE]:
    pygame.time.wait(33)
menu()

返回布尔值的menu()函数代码的其他地方使用。

解决方法

您可以使用pygame.KEYUP事件来检查按键是否按下。

events = pygame.event.get()
for event in events:
    if event.type == pygame.KEYUP:
       if event.key == pygame.K_SPACE:
           return True

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