pygame 将按键作为字符串按下 [英] pygame get key pressed as a string
问题描述
我想根据用户按下的键更改控件屏幕中的文本.我如何将 pygame.event.get()
转换成一个字符串,显示哪个键被按下了?
I want to change the text in the controls screen based on the key which the user presses.
how do I convert pygame.event.get()
into a string that shows which key has been pressed?
最好没有很多 if 语句
preferably without many if staments
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
slectedKey = # get key name as a string
print(slectedKey)
推荐答案
被按下的代码可以通过 event.key
属性获取.键的 unicode 表示可以通过 event.unicode
属性获得.请参阅 pygame.event
模块.
The code of the pressed can be get by the event.key
attribute.
The unicode representation for the key can be get by the event.unicode
attribute.
See pygame.event
module.
可以通过 pygame.key.name()
获取密钥的 unser 友好名称:
A unser friendly name of a key can be get by pygame.key.name()
:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print(pygame.key.name(event.key))
<小时>
注意,如果您想评估某个键是否被按下,请将 event.key
与 pygame.key
模块:
Note, if you want to evaluate if a certain key is pressed, the compare event.key
to the constants defined in the pygame.key
module:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
# [...]
elif event.key == pygame.K_RIGHT:
# [...]
或者将密钥存储在一个变量中并在应用程序循环中连续使用:
Or store the key in a variable and use it continuously in the application loop:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
slectedKey = event.key
if slectedKey == pygame.K_UP:
# [...]
elif slectedKey == pygame.K_DOWN:
# [...]
<小时>
如果要评估某个键是否被按住,请使用 pygame.key.get_pressed()
:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
# [...]
elif keys[pygame.K_a]:
# [...]
这篇关于pygame 将按键作为字符串按下的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!