[英]How can I detect keyboard input to play a sound with python?
我正在編寫一個程序,當您按下鍵盤上的一個鍵(或只是鍵入)時,該程序將播放聲音。
我剛剛開始研究它,並且嘗試使用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')
它通過檢查spam
是否為True
值來工作( spam
是pygame
返回的列表的名稱)。 key.get_pressed
返回列表True/False
值,每個按鍵, True
按下如果, False
如果不是。
此代碼的問題在於,當我運行它時,它僅輸出None
。 這意味着我沒有檢測到鍵盤輸入。
如果有人知道如何解決此問題,或者有更好的解決方法,我將不勝感激!
謝謝!
pygame.key.get_pressed()
獲取所有鍵盤按鈕的狀態。 它返回一個列表。
但是,請注意,僅當關鍵事件是pygame.event.get()
從隊列中獲取事件時,才會更新pygame.key.get_pressed()
返回的值。 簡而言之, pygame.key.get_pressed()
僅在存在事件循環的情況下才有效。
您可以評估特定的鍵(例如空格鍵):
allKeys = pygame.key.get_pressed()
spam = allKeys[pygame.K_SPACE]
如果要評估是否按下了任何鍵,則必須評估allKeys
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.