Как отключить определенную клавишу на клавиатуре, пока функция не будет вызвана хотя бы один раз? - PullRequest
0 голосов
/ 09 июня 2019

Я создал игру с функцией паузы. Как только игрок нажимает клавишу выхода во время игры, меню включается, после повторного нажатия на кнопку сброса меню отключается и возобновляется игра. Но когда я открываю свою программу и нажимаю клавишу escape, не запуская игру, игра вылетает, и игра не возобновляется. Как я могу отключить клавишу escape, пока не запустится хотя бы одна игра.

Я использую модуль Pygame-menu от ppizarror для создания моего графического интерфейса, я пытался найти мой вопрос, но никто не дал четкого ответа. Ниже приведены основные части кода из двух разных классов, которые обрабатывают функцию паузы.

Класс EntertheGauntlet: # функция, используемая в меню, которая отключает предыдущее меню для новый для отображения def resume_feature (): # отключает меню self.main_menu.disable () # возобновляет игру в фоновом режиме, вызывая ее из основного игрового шлейфа self.game.main ()

Класс 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()

Единственное решение, которое я вижу, это отключение клавиши escape, пока функция запуска новой игры не будет вызвана хотя бы один раз. Не могли бы вы показать мне, как я это сделаю.

1 Ответ

2 голосов
/ 09 июня 2019

То, что вы предлагаете, звучит излишне сложно.Вы не можете связываться с системными драйверами клавиатуры или с сопоставлением клавиш и символов, поскольку пользователь может работать в другом окне с другой программой, где требуется клавиша ESC.

Может 'Вы переписываете свой код , который обрабатывает функцию паузы, чтобы проверить, есть ли игра в паузе?Инициализируйте некоторую переменную False при запуске приложения и установите значение True, когда вызывается функция, которую вы ожидаете вызвать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...