Я делаю игру, в которой участвуют пользователи из окна пигмея. Ввод необходим пользователю для ввода имени пользователя или псевдонима. Я заметил, что некоторые игры в Интернете допускают числовой ввод, поэтому я использовал ...
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 по адресу pygame.key
, но это тоже не помогло.
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
Я ожидаю, что это будет работать для всех символических значений, таких как ".", "/", "_", "-", "(", ")", "+" и т. Д.