我正在用 pygame 制作游戏,我希望玩家输入他的名字,这样在玩游戏时它就会出现在屏幕上。我尝试了一个列表:
def input_player_name():
player_name_screen = True
name_list = []
win.blit(player_name_bg, (0, 0))
while player_name_screen:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
name_list.append("a")
elif event.key == pygame.K_b:
name_list.append("b")
elif event.key == pygame.K_c:
name_list.append("c")
elif event.key == pygame.K_d:
name_list.append("d")
elif event.key == pygame.K_e:
name_list.append("e")
elif event.key == pygame.K_RETURN:
print (name_list)
player_name_screen = False
pygame.display.update()
clock.tick(fps)
这有效。但我想用一个字符串来做到这一点,所以它会创建一个空字符串,玩家在键盘上输入他的名字时会更新该字符串。有办法做到吗?或者也许您可以将我重定向到一个已经存在的页面,其中有人问过这个问题(我还找不到)?谢谢您的回答=D
最佳答案
使用event.unicode
:
例如:
player_name_screen = True
name = ""
while player_name_screen:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
print (name)
player_name_screen = False
else:
name += event.unicode
如果你想限制输入字母,那么你可以这样做:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
print (name)
player_name_screen = False
elif 'a' <= event.unicode <= 'z' or 'A' <= event.unicode <= 'Z':
name += event.unicode
关于python - 如何创建空字符串并更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60439943/