我正在编写一个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)
一个问题是它不识别特殊字符,比如(“:”,“;”,shift字符等)。有没有更好的方法来编写这样的代码?
a = "Hello"
,然后a = a[:-1]
就可以移除最后一个字符。 - g19fanaticevent.unicode
和pygame.K_Z
(大小写)以及KMOD_SHIFT
(你需要event.key
和KMOD_LSHIFT
/KMOD_RSHIFT
,对吗?)在elif
中是错误的。我建议进行修改,但我没有时间测试它或者立即知道正确的方法 xD。 - binki