我正在制作一个在pygame窗口中涉及用户输入的游戏。用户需要输入该内容才能输入用户名或昵称。我注意到网络上的某些游戏允许数字输入,所以我使用了...
event.unicode.isnumeric():
name += event.unicode
来处理它们。 就字母字母而言,有...
event.unicode.isalpha():
name += event.unicode
在这两个示例中,我都知道它们可以用K_1
,K_a
表示,但是我相信if语句将太长。
问题是,是否有一种方法可以使用所有符号/?._
,而又不会使if语句过长?
我尝试猜测event.unicode.issymbol()
,event.unicode.issymbolic()
和event.unicode.symbol()
,但是它们不起作用。
我也尝试查看pygame.key
上的pygame文档,但这也无济于事。
name = "" ## stating a variable and assigning to ""
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.unicode.isalpha(): ## if alphabetical letter, a-z
name += event.unicode ## add letter to name
elif event.key == K_BACKSPACE: ## if backspace
name = name[:-1] ## remove last value in name
elif event.key == K_SPACE: ## if space
name += event.unicode ## add space
elif event.unicode.isnumeric(): ## if numerical value, 0-9
name += event.unicode ## add number to name
elif event.unicode.symbol(): ## if adding
name += event.unicode
显示此:
elif event.unicode.symbol():
AttributeError: 'str' object has no attribute 'symbol'
issymbolic
和issymbol
也会发生
我希望它适用于所有符号值,例如“。”,“ /”,“ _”,“-”,“(”,“)”,“ +”等。