簡體   English   中英

如何檢測鍵盤輸入以使用python播放聲音?

[英]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值來工作( spampygame返回的列表的名稱)。 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()allKeysTrue

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM