如何禁用键盘上的某个键,直到至少调用一次功能?

时间:2019-06-09 03:50:22

标签: python pygame

我创建了一个具有暂停功能的游戏。玩家在玩游戏时按下逃生键后,菜单启用,一旦再次按下逃生键,则禁用菜单并继续游戏。但是,当我打开程序并在没有启动游戏的情况下按Escape键时,游戏崩溃会导致他们的游戏无法恢复。在至少开始玩至少一场游戏之前,我如何才能禁用转义键。

我正在使用ppizarror的Pygame-menu模块来创建我的GUI,我试图查找我的问题,但是没有人有明确的答案。下面是处理暂停功能的两个不同类的代码的主要部分。

Class EntertheGauntlet:     #在整个菜单中使用的功能,该功能会禁用前一个菜单     新的要显示的             def resume_feature():                 #禁用菜单                 self.main_menu.disable()                 #通过调用它恢复在后台暂停的游戏     从主游戏循环                 self.game.main()

Class GUI:             #在整个游戏中使用的功能,当新的     按下游戏按钮             def start_new():

            # disable previous menu
            self.main_menu.disable()
            # Start new game by calling variable from EscapeTheGauntlet.py
            self.game = EscapeTheGauntlet(self.window, clock, self.sfx)
            # sets this new updated screen to the new main window
            self.game.main()

我能看到的唯一解决方案是禁用转义键,直到至少一次调用开始新游戏功能。你能告诉我我怎么做吗。

1 个答案:

答案 0 :(得分:2)

您所建议的内容听起来过于复杂。您不能弄乱键盘的系统驱动程序或键到字符的映射,因为用户可能正在使用需要退出键的其他程序在不同的窗口中工作。

您不能重写用于处理暂停功能的您的代码来检查是否存在暂停的游戏吗?在应用程序启动时使用False初始化一些变量,并在调用您希望被调用的函数时将其设置为True。