gpt4 book ai didi

python - 如何检测键盘输入以使用 python 播放声音?

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:12 24 4
gpt4 key购买 nike

我正在制作一个程序,当您在键盘上按下一个键(或只是键入)时会播放声音。

我刚开始研究它,我正在尝试使用 pygame.key.get_pressed() 来检查键盘输入。我用代码来到这里:

from pygame import init, key

init()

spam = []

while True:
spam = key.get_pressed()
if True in spam:
print('KEY PRESSED')
elif False in spam:
print('NONE')

它的工作原理是检查 True 值是否在 spam 中(spam 是列表的名称 pygame 返回)。 key.get_pressed 返回每个键的 True/False 值列表,如果按下则为 True,否则为 False .

这段代码的问题在于,当我运行它时,它只输出None。这意味着我没有检测到键盘输入。

如果有人知道如何解决这个问题,或者有更好的方法,我将不胜感激!

谢谢!

最佳答案

pygame.key.get_pressed()获取所有键盘按钮的状态。它返回一个列表。
但是,请注意 pygame.key.get_pressed() 返回的值仅当关键事件是通过 pygame.event.get() 从队列中获取事件时才会更新.简单来说,pygame.key.get_pressed() 只有在有事件循环的情况下才有效。

您可以评估特定键(例如空格键):

allKeys = pygame.key.get_pressed()
spam = allKeys[pygame.K_SPACE]

如果你想评估是否按下了任何键,那么你必须评估是否 any() allKeys 中的值为 True:

allKeys = pygame.key.get_pressed()
anyKey = any([k for k in allKeys if k == True])

另一个解决方案是检查 KEYDOWN 事件是否发生。下一个未决事件可以通过 pygame.event.get() 获取:

keyPressed = False
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
keyPressed = True

关于python - 如何检测键盘输入以使用 python 播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55134435/

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