pygam中的键盘布局感知组合

2024-06-17 10:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

Pygame有一个常量,例如感叹号!。这个常数叫做pygame.K_EXCLAIM。但是,在我的标准美国键盘布局中,感叹号是通过按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_EXCLAIMK_AMPERSAND)?你知道吗


Tags: keyeventgetifshift布局键盘pygame