Python pygame中的键盘布局感知组合
Pygame有一个常量,例如感叹号!。该常量称为Python pygame中的键盘布局感知组合,python,keyboard,pygame,keyboard-layout,Python,Keyboard,Pygame,Keyboard Layout,Pygame有一个常量,例如感叹号!。该常量称为pygame.K_惊叹号。然而,在我的标准美国键盘布局中,感叹号是通过按下shift键和键1生成的。考虑下面两个片段: # snippet 1 for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_EXCLAIM: print('!') elif event.
pygame.K_惊叹号。然而,在我的标准美国键盘布局中,感叹号是通过按下shift键和键1生成的。考虑下面两个片段:
# snippet 1
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_EXCLAIM:
print('!')
elif event.key == pygame.K_1:
print('1')
# snippet 2
pressed = pygame.key.get_pressed()
if pressed[pygame.K_EXCLAIM]:
print('!')
if pressed[pygame.K_1]:
print('1')
在这两种情况下,当我按下Shift+1时,会产生一个感叹号,pygame不识别组合,只是说按下了Shift键和1键,打印出值“1”。这让我有点担心,因为虽然我可以硬编码这样的组合,但它们取决于键盘的布局
我是否可以使pygame以键盘布局感知的方式生成常量组合(例如K_惊叹号
或K_符号
)?您需要的是事件。unicode
属性:
if event.unicode == "!":
print("!")
很有趣,但它似乎无法与Shift+NumPad3一起生成分页。这也能实现吗?@Mephy Untestet!!请您测试并报告一下好吗?不过,这是键盘布局的硬编码,我正在努力避免;)我想unicode已经足够好了。