
- Pygame 教程
- Pygame - 首頁
- Pygame - 概述
- Pygame - Hello World
- Pygame - 顯示模式
- Pygame - Locals 模組
- Pygame - 顏色物件
- Pygame - 事件物件
- Pygame - 鍵盤事件
- Pygame - 滑鼠事件
- Pygame - 繪製形狀
- Pygame - 載入影像
- Pygame - 在視窗中顯示文字
- Pygame - 移動影像
- Pygame - 使用數字小鍵盤移動
- Pygame - 使用滑鼠移動
- Pygame - 移動矩形物件
- Pygame - 使用文字作為按鈕
- Pygame - 影像變換
- Pygame - 音效物件
- Pygame - 混音器通道
- Pygame - 播放音樂
- Pygame - 播放影片
- Pygame - 使用攝像頭模組
- Pygame - 載入游標
- Pygame - 訪問 CDROM
- Pygame - Sprite 模組
- Pygame - PyOpenGL
- Pygame - 錯誤和異常
- Pygame 有用資源
- Pygame - 快速指南
- Pygame - 有用資源
- Pygame - 討論
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 文字輸入事件 |
廣告