Pygame 鍵盤事件



Pygame 識別 KEYUP 和 KEYDOWN 事件。pygame.key 模組定義了用於處理鍵盤互動的有用函式。當按下和釋放按鍵時,pygame.KEYDOWN 和 pygame.KEYUP 事件會被插入到事件佇列中。key 屬性是一個整數 ID,代表鍵盤上的每個按鍵。

import pygame, sys
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Hello World")
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()
      if event.type == pygame.KEYDOWN:
         key=pygame.key.name(event.key)
         print (key, "Key is pressed")
      if event.type == pygame.KEYUP:
         key=pygame.key.name(event.key)
         print (key, "Key is released")

執行以上程式碼,並在 Pygame 視窗啟用時按下各種按鍵。以下是 Python 控制檯上的示例輸出。

q Key is pressed
q Key is released
right shift Key is released
1 Key is pressed
1 Key is released
enter Key is pressed
enter Key is released
backspace Key is pressed
backspace Key is released
x Key is pressed
x Key is released 
home Key is pressed
home Key is released
f1 Key is pressed
f1 Key is released
left Key is pressed
left Key is released
right Key is pressed
right Key is released
up Key is pressed
up Key is released
down Key is pressed
down Key is released

正如我們所看到的,event.key 屬性返回與每個按鍵關聯的唯一識別符號。在遊戲場景中,左右、上下箭頭鍵經常使用。如果檢測到特定按鍵按下,我們可以編寫相應的邏輯。

pygame.key 模組中其他有用的屬性如下:

pygame.key.get_pressed 獲取所有鍵盤按鍵的狀態
pygame.key.get_mods 確定哪些修飾鍵正在被按下
pygame.key.set_repeat 控制按住按鍵的重複方式
pygame.key.get_repeat 檢視按住按鍵的重複方式
pygame.key.name 獲取按鍵識別符號的名稱
pygame.key.key_code 從按鍵名稱獲取按鍵識別符號
pygame.key.start_text_input 開始處理 Unicode 文字輸入事件
pygame.key.stop_text_input 停止處理 Unicode 文字輸入事件
廣告