在Python/Pygame中获得键盘输入的好方法是什么?



我正在制作一个pygame程序,其中我有一个字符串,无论用户键入什么,它都会显示在pygame窗口中。下面是代码:

    if (event.type==pygame.KEYDOWN):
                    if (event.key==pygame.K_BACKSPACE):
                            if (len(sin)>0):
                                    sin=""
                    elif (event.key==pygame.K_RETURN):
                            if (len(sin)==11):
                                    #sin.replace("-","")
                                    running=2
                                    screen.fill(white)
                            else:
                                    body=True
                    else:
                            sin=sin+chr(event.key)
    text=font.render(sin,True,(black),white) 

一个问题是,它不识别特殊字符,如(":",";",移位字符等)有没有更好的方法来编码这样的东西?

使用event.unicode来获取您正在寻找的内容

…pygame。KEYDOWN事件有一个额外的属性unicode,和扫描码。Unicode表示单个字符串,该字符串是完全翻译字符输入. ...


要回答您的评论,只需勾选event.unicode而不是event.key:

...
if (event.type==pygame.KEYDOWN):
    if (event.unicode==pygame.K_COLON): #to match a colon
        pass
    elif (event.unicode== (pygame.K_Z | pygame.KMOD_SHIFT)): #to explicitly match a capital Z instead of just a z
       pass
...

相关内容

  • 没有找到相关文章

最新更新