Pygame menu вопрос про выбор сложность
Подскажите пожалуйста, что мне нужно прописать в функцию set_difficulty, чтобы при выборе сложности (например, Hard) значение некоторой переменной difficult принимало значение 1, а при других уровнях сложности — другие значения. Не смог найти примеров и пояснений в интернете
def set_difficulty(value, difficulty):
# Do the job here !
pass
def start_the_game():
# Do the job here !
pass
menu = pygame_menu.Menu(300, 400, 'Welcome',
theme=pygame_menu.themes.THEME_BLUE)
menu.add_text_input('Name :', default='John Doe')
menu.add_selector('Difficulty :', [('Hard', 1), ('Easy', 2)], onchange=set_difficulty)
menu.add_button('Play', start_the_game)
menu.add_button('Quit', pygame_menu.events.EXIT)
Ответы (1 шт):
Самый простой способ — это записать выбранное значение в глобальную переменную:
difficult = 1
def set_difficulty(value, difficulty):
global difficult
difficult = difficulty
Если хочется обойтись без глобальных переменных, можно вместо функции в качестве параметра onchange передать метод какого-нибудь класса, в котором будет храниться информация о настройках.
Update:
По поводу того, как управлять присваиваемым значением.
Когда вы задаёте selector, вы передаёте в него список пар (название, значение). Так что изменив значение в соответствующей паре можно управлять тем, что будет передано в функцию onchange:
menu.add_selector('Difficulty :', [
('Hard', 1),
('Easy', 2)
# ^ эти значения и передаются в функцию.
], onchange=set_difficulty)