python - 如何创建空字符串并更新它

标签 python string pygame

我正在用 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/

相关文章:

java - 在java中使用散列来匹配模式

Java - 按 "]"分割字符串

python - 测试图像碰撞 Pygame

python - python 3.5 的 Pygame 安装

python - pygame动画 Sprite 表

Python - 'import' 或将模块作为参数传递?

python - 如何从文本文件中获取代理ip和端口

python - 创建中断 (ISR) 以创建平滑的机械臂运动

python - 将 Pandas 数据框中的无效日期转换为最近的有效日期

java - 十六进制字符串到int数组的转换