如何从 pygame-menu 中的 text_input 获取值?
How to get value from text_input in pygame-menu?
我有菜单。在这个菜单中,我有一个“名称”字段,用户可以在其中输入他的名字。我需要使用此名称进行进一步处理。我应该怎么做?我有一些代码:
menu.add.text_input('name:', default='player') # I NEED THIS VALUE.
menu.add.selector('difficulty', [('easy', "EASY"), ('medium', 'MEDIUM'), ('hard', 'HARD')], onchange=change_difficulty, style='fancy', style_fancy_arrow_margin=(0, 0, 0), style_fancy_bgcolor=(0, 0, 0, 0), style_fancy_bordercolor=(0, 0, 0, 0), style_fancy_arrow_color=(220, 132, 201))
menu.add.button('play', start_the_game, DIFFICULTY)
menu.add.button('quit', pygame_menu.events.EXIT)
while True:
screen.blit(bg_image, (0, 0))
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
exit()
if menu.is_enabled():
menu.update(events)
menu.draw(screen)
pygame.display.update()
与其他事件驱动语言一样,例如C# 你需要将一个函数绑定到你在菜单中添加的输入字段的 on change 事件,这样你的代码就会像这样
menu.add.text_input('name:', default='player', onchange= MyTextValue) # Function is bind here
menu.add.selector('difficulty', [('easy', "EASY"), ('medium', 'MEDIUM'), ('hard', 'HARD')], onchange=change_difficulty, style='fancy', style_fancy_arrow_margin=(0, 0, 0), style_fancy_bgcolor=(0, 0, 0, 0), style_fancy_bordercolor=(0, 0, 0, 0), style_fancy_arrow_color=(220, 132, 201))
menu.add.button('play', start_the_game, DIFFICULTY)
menu.add.button('quit', pygame_menu.events.EXIT)
def MyTextValue(name):
#on input change your value is returned here
print('Player name is', name)
while True:
screen.blit(bg_image, (0, 0))
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
exit()
if menu.is_enabled():
menu.update(events)
menu.draw(screen)
pygame.display.update()
我有菜单。在这个菜单中,我有一个“名称”字段,用户可以在其中输入他的名字。我需要使用此名称进行进一步处理。我应该怎么做?我有一些代码:
menu.add.text_input('name:', default='player') # I NEED THIS VALUE.
menu.add.selector('difficulty', [('easy', "EASY"), ('medium', 'MEDIUM'), ('hard', 'HARD')], onchange=change_difficulty, style='fancy', style_fancy_arrow_margin=(0, 0, 0), style_fancy_bgcolor=(0, 0, 0, 0), style_fancy_bordercolor=(0, 0, 0, 0), style_fancy_arrow_color=(220, 132, 201))
menu.add.button('play', start_the_game, DIFFICULTY)
menu.add.button('quit', pygame_menu.events.EXIT)
while True:
screen.blit(bg_image, (0, 0))
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
exit()
if menu.is_enabled():
menu.update(events)
menu.draw(screen)
pygame.display.update()
与其他事件驱动语言一样,例如C# 你需要将一个函数绑定到你在菜单中添加的输入字段的 on change 事件,这样你的代码就会像这样
menu.add.text_input('name:', default='player', onchange= MyTextValue) # Function is bind here
menu.add.selector('difficulty', [('easy', "EASY"), ('medium', 'MEDIUM'), ('hard', 'HARD')], onchange=change_difficulty, style='fancy', style_fancy_arrow_margin=(0, 0, 0), style_fancy_bgcolor=(0, 0, 0, 0), style_fancy_bordercolor=(0, 0, 0, 0), style_fancy_arrow_color=(220, 132, 201))
menu.add.button('play', start_the_game, DIFFICULTY)
menu.add.button('quit', pygame_menu.events.EXIT)
def MyTextValue(name):
#on input change your value is returned here
print('Player name is', name)
while True:
screen.blit(bg_image, (0, 0))
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
exit()
if menu.is_enabled():
menu.update(events)
menu.draw(screen)
pygame.display.update()