gpt4 book ai didi

python - Pygame:有什么简单的方法可以找到按下的任何字母数字的字母/数字吗?

转载 作者:太空狗 更新时间:2023-10-30 01:58:48 24 4
gpt4 key购买 nike

我目前正在开发的游戏需要让人们以他们的名义为高分板计时。我稍微熟悉如何处理按键,但我只处理过寻找特定的按键。有没有一种简单的方法可以让按下任何键的字母而不必做这样的事情:

for event in pygame.event.get(): 
if event.type == KEYUP:
if event.key == K_a:
newLetter = 'a'
elif event.key == K_b:
newLetter = 'b'

...
elif event.key == K_z:
newLetter = 'z'

虽然这行得通,但我觉得有一种更有效的方法可以解决这个问题。我就是想不通,也找不到任何相关指南。

最佳答案

基本上有两种方式:

选项 1:使用 pygame.key.name() .

就这么简单

for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print(pygame.key.name(event.key))

与使用 chr 相比的优势在于,chr 仅在 event.key 的值介于 0 和 255(含)之间时才有效。

如果您按menuAlt GrTabLShiftpygame.key。 name 将愉快地返回 menualt grtableft shift,而 chr 会崩溃,崩溃,返回空白,然后崩溃。


选项 2:使用 pygame.KEYDOWNunicode 属性事件

for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print(event.unicode)

它会在使用功能键时为您提供字母/数字或空字符串,并且还会考虑修饰符,例如如果您在按下 a 的同时按住 Shift 键,它将返回 A 而不仅仅是 a

The pygame.KEYDOWN event has additional attributes unicode and scancode. unicode represents a single character string that is the fully translated character entered. This takes into account the shift and composition keys. scancode represents the platform-specific key code.

关于python - Pygame:有什么简单的方法可以找到按下的任何字母数字的字母/数字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22992814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com