我希望根据用户按下的键来更改控件屏幕上的文本。如何将pygame.event.get()
转换为显示已按下哪个键的字符串?
最好不要使用太多if语句。
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
模块。
一个键的用户友好名称可以通过pygame.key.name()
获得:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print(pygame.key.name(event.key))
event.key
与 pygame.key
模块中定义的常量进行比较:for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
# [...]
elif event.key == pygame.K_RIGHT:
# [...]
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]:
# [...]
unicode
属性,可以直接使用。
对于特殊键,也会触发该事件,而.key
属性在这种情况下是不正确的(例如上箭头键的代码为"273")。 - undefinedelse:
slectedKey = event.unicode
- undefinedsys
,他们是用sys
做什么的?你需要这样做吗?通过一点研究,你可以很快回答自己的问题。 - undefined
print(pygame.key.name(event.key))
- undefined