pygame.KEYDOWN 按下鍵盤時
pygame.KEYUP 釋放鍵盤時
pygame.key
pygame.key.get_focused | 如果顯示器正在從系統接收鍵盤輸入,則為true |
pygame.key.get_pressed | 獲取所有鍵盤按鈕的狀態 |
pygame.key.get_mods | 確定哪些修飾鍵被保留 |
pygame.key.set_mods | 臨時設置按下哪些修改鍵 |
pygame.key.set_repeat | 控制如何重復按住鍵 |
pygame.key.get_repeat | 查看如何重復按住鍵 |
pygame.key.name | 獲取密鑰標識符的名稱 |
pygame.key.key_code | 從密鑰名稱獲取密鑰標識符 |
pygame.key.start_text_input | 開始處理IME成分 |
pygame.key.stop_text_input | 停止處理IME成分 |
pygame.key.set_text_input_rect | 控制候選人名單的位置 |
此模塊包含用於處理鍵盤的功能。
在pygame.event
與事件和隊列交互pygame的模塊隊列中獲得pygame.KEYDOWN
和pygame.KEYUP
當按下和釋放鍵盤按鈕事件。這兩個事件都有 key
和mod
屬性。
該pygame.KEYDOWN
事件具有其他屬性unicode
和 scancode
。
unicode
:一個字符串,即輸入的完全翻譯后的字符,其中考慮了shift和撰寫鍵scancode
:特定於平台的鍵代碼,可能因鍵盤而異,但對於選擇諸如多媒體鍵之類的奇怪鍵非常有用
pygame 2.0.0的新功能:該pygame.TEXTINPUT
事件優先於的unicode
屬性pygame.KEYDOWN
。該屬性text
包含輸入。
以下是用於表示鍵盤按鍵的所有常量(來自pygame.locals
pygame常量)的列表。
pygame
Constant ASCII Description
---------------------------------
K_BACKSPACE \b backspace
K_TAB \t tab
K_CLEAR clear
K_RETURN \r return
K_PAUSE pause
K_ESCAPE ^[ escape
K_SPACE space
K_EXCLAIM ! exclaim
K_QUOTEDBL " quotedbl
K_HASH # hash
K_DOLLAR $ dollar
K_AMPERSAND & ampersand
K_QUOTE quote
K_LEFTPAREN ( left parenthesis
K_RIGHTPAREN ) right parenthesis
K_ASTERISK * asterisk
K_PLUS + plus sign
K_COMMA , comma
K_MINUS - minus sign
K_PERIOD . period
K_SLASH / forward slash
K_0 0 0
K_1 1 1
K_2 2 2
K_3 3 3
K_4 4 4
K_5 5 5
K_6 6 6
K_7 7 7
K_8 8 8
K_9 9 9
K_COLON : colon
K_SEMICOLON ; semicolon
K_LESS < less-than sign
K_EQUALS = equals sign
K_GREATER > greater-than sign
K_QUESTION ? question mark
K_AT @ at
K_LEFTBRACKET [ left bracket
K_BACKSLASH \ backslash
K_RIGHTBRACKET ] right bracket
K_CARET ^ caret
K_UNDERSCORE _ underscore
K_BACKQUOTE ` grave
K_a a a
K_b b b
K_c c c
K_d d d
K_e e e
K_f f f
K_g g g
K_h h h
K_i i i
K_j j j
K_k k k
K_l l l
K_m m m
K_n n n
K_o o o
K_p p p
K_q q q
K_r r r
K_s s s
K_t t t
K_u u u
K_v v v
K_w w w
K_x x x
K_y y y
K_z z z
K_DELETE delete
K_KP0 keypad 0
K_KP1 keypad 1
K_KP2 keypad 2
K_KP3 keypad 3
K_KP4 keypad 4
K_KP5 keypad 5
K_KP6 keypad 6
K_KP7 keypad 7
K_KP8 keypad 8
K_KP9 keypad 9
K_KP_PERIOD . keypad period
K_KP_DIVIDE / keypad divide
K_KP_MULTIPLY * keypad multiply
K_KP_MINUS - keypad minus
K_KP_PLUS + keypad plus
K_KP_ENTER \r keypad enter
K_KP_EQUALS = keypad equals
K_UP up arrow
K_DOWN down arrow
K_RIGHT right arrow
K_LEFT left arrow
K_INSERT insert
K_HOME home
K_END end
K_PAGEUP page up
K_PAGEDOWN page down
K_F1 F1
K_F2 F2
K_F3 F3
K_F4 F4
K_F5 F5
K_F6 F6
K_F7 F7
K_F8 F8
K_F9 F9
K_F10 F10
K_F11 F11
K_F12 F12
K_F13 F13
K_F14 F14
K_F15 F15
K_NUMLOCK numlock
K_CAPSLOCK capslock
K_SCROLLOCK scrollock
K_RSHIFT right shift
K_LSHIFT left shift
K_RCTRL right control
K_LCTRL left control
K_RALT right alt
K_LALT left alt
K_RMETA right meta
K_LMETA left meta
K_LSUPER left Windows key
K_RSUPER right Windows key
K_MODE mode shift
K_HELP help
K_PRINT print screen
K_SYSREQ sysrq
K_BREAK break
K_MENU menu
K_POWER power
K_EURO Euro
鍵盤還有一個修飾符狀態列表(來自pygame.locals
pygame常量),可以通過將它們按位進行“或”運算來組合。
pygame
Constant Description
-------------------------
KMOD_NONE no modifier keys pressed
KMOD_LSHIFT left shift
KMOD_RSHIFT right shift
KMOD_SHIFT left shift or right shift or both
KMOD_LCTRL left control
KMOD_RCTRL right control
KMOD_CTRL left control or right control or both
KMOD_LALT left alt
KMOD_RALT right alt
KMOD_ALT left alt or right alt or both
KMOD_LMETA left meta
KMOD_RMETA right meta
KMOD_META left meta or right meta or both
KMOD_CAPS caps lock
KMOD_NUM num lock
KMOD_MODE AltGr
修飾符信息包含在和事件的mod
屬性中 。該屬性是事件發生時處於按下狀態的所有修改鍵的位掩碼。修飾符信息可以使用按位AND進行解碼(除外,應使用equals進行比較)。例如:pygame.KEYDOWN
pygame.KEYUP
mod
KMOD_NONE
==
for event in pygame.event.get():
if event.type == pygame.KEYDOWN or event.type == pygame.KEYUP:
if event.mod == pygame.KMOD_NONE:
print('No modifier keys were in a pressed state when this '
'event occurred.')
else:
if event.mod & pygame.KMOD_LSHIFT:
print('Left shift was in a pressed state when this event '
'occurred.')
if event.mod & pygame.KMOD_RSHIFT:
print('Right shift was in a pressed state when this event '
'occurred.')
if event.mod & pygame.KMOD_SHIFT:
print('Left shift or right shift or both were in a '
'pressed state when this event occurred.')
-
pygame.key.
get_focused
( ) -
如果顯示器正在從系統接收鍵盤輸入,則為trueget_focused()->布爾
評論2True
當顯示窗口具有系統的鍵盤焦點時返回。如果顯示器需要確保它不會失去鍵盤焦點,則可以使用pygame.event.set_grab()
控件與其他應用程序共享輸入設備來獲取所有輸入。
-
pygame.key.
get_pressed
( ) -
獲取所有鍵盤按鈕的狀態get_pressed()->布爾
返回一系列布爾值,它們表示鍵盤上每個鍵的狀態。使用鍵常量值索引數組。甲
True
值表示該按鈕被按下。注意
使用此功能獲取按鈕列表不是處理用戶輸入文本的正確方法。無法知道按鍵的順序,並且在兩次調用之間無法完全注意到快速按下的按鍵
pygame.key.get_pressed()
。也沒有辦法將這些按下的鍵轉換為完全轉換的字符值。請參閱pygame模塊pygame.KEYDOWN
上的事件以pygame.event
與事件進行交互,並為此功能排隊。
-
pygame.key.
get_mods
( ) -
確定哪些修飾鍵被保留get_mods()->整數
返回一個單個整數,該整數表示所持有的所有修飾鍵的位掩碼。使用按位運算符可以測試是否按下了特定的 修飾鍵。
評論6
-
pygame.key.
set_mods
( ) -
臨時設置按下哪些修改鍵set_mods(int)->無
創建 要強加給程序的修飾鍵常量的位掩碼。
-
pygame.key.
set_repeat
( ) -
控制如何重復按住鍵set_repeat()->無set_repeat(delay)->無set_repeat(delay,interval)->無
啟用鍵盤重復功能后,按下這些鍵將生成多個
pygame.KEYDOWN
事件。該delay
參數是pygame.KEYDOWN
將發送第一個重復事件之前的毫秒數。在那之后,另一個pygame.KEYDOWN
事件將每interval
毫秒發送一次。如果delay
提供了一個interval
值,但沒有提供一個值或該值為0,interval
則會將設置為與相同的值delay
。要禁用重復鍵,請不帶任何參數或將其
delay
設置為0來調用此函數。當pygame初始化時,按鍵重復被禁用。
籌款: ValueError-如果 delay
或interval
<0在pygame 2.0.0中更改:
ValueError
現在,pygame.error
如果delay
或interval
<0,則引發A (而不是 )。
-
pygame.key.
get_repeat
( ) -
查看如何重復按住鍵get_repeat()->(延遲,間隔)
獲取
delay
和interval
鍵盤重復值。有關這些值的說明,請參考pygame.key.set_repeat()
控制如何重復按住鍵。pygame 1.8的新功能。
-
pygame.key.
name
( ) -
獲取密鑰標識符的名稱名稱(鍵)->字符串
從鍵盤按鈕ID常量獲取按鈕的描述性名稱。
評論7
-
pygame.key.
key_code
( ) -
從密鑰名稱獲取密鑰標識符key_code(名稱=字符串)-> int
從密鑰的描述性名稱中獲取密鑰標識符代碼。這將返回與K_ *鍵碼之一匹配的整數。例如:
>>> pygame.key.key_code("return") == pygame.K_RETURN True >>> pygame.key.key_code("0") == pygame.K_0 True >>> pygame.key.key_code("space") == pygame.K_SPACE True
籌款: - ValueError-如果密鑰名稱未知。
- NotImplementedError-如果與SDL 1一起使用
pygame 2.0.0的新功能。
-
pygame.key.
start_text_input
( ) -
開始處理IME成分start_text_input()->無
開始接收
pygame.TEXTEDITING
和pygame.TEXTINPUT
處理IME的事件。pygame.TEXTEDITING
當啟動或更改IME合成時,會收到一個事件。它包含組合物text
,length
和編輯start
位置在組合物內(屬性text
,length
以及start
,分別地)。當提交組合(或接收到非IME輸入)時,將pygame.TEXTINPUT
生成一個事件。正常
pygame.TEXTINPUT
事件不依賴於此。pygame 2.0.0的新功能。
-
pygame.key.
stop_text_input
( ) -
停止處理IME成分stop_text_input()->無
停止接收
pygame.TEXTEDITING
和pygame.TEXTINPUT
處理IME的事件。正常
pygame.TEXTINPUT
事件不依賴於此。pygame 2.0.0的新功能。
-
pygame.key.
set_text_input_rect
( ) -
控制候選人名單的位置set_text_input_rect(Rect)->無
這將設置用於輸入法輸入法的矩形。如果支持,它將控制候選列表的打開位置。
正常
pygame.TEXTINPUT
事件不依賴於此。pygame 2.0.0的新功能。