-
pygame.key
- pygame module to work with the keyboard
— true if the display is receiving keyboard input from the system — get the state of all keyboard buttons — determine which modifier keys are being held — temporarily set which modifier keys are pressed — control how held keys are repeated — see how held keys are repeated — get the name of a key identifier — get the key identifier from a key name — start handling Unicode text input events — stop handling Unicode text input events — controls the position of the candidate list 此模块包含处理键盘的功能。
这个
pygame.event
pygame module for interacting with events and queues 队列获取pygame.KEYDOWN
和pygame.KEYUP
按下并松开键盘按钮时发生的事件。这两个事件都有key
和mod
属性。key
:一个 integer ID 代表键盘上的每个键mod
:所有对象的位掩码 modifier keys 事件发生时处于按下状态的
这个
pygame.KEYDOWN
事件具有其他属性unicode
和scancode
。unicode
:作为输入的完全翻译的字符的单个字符串,这会考虑Shift键和合成键scancode
:特定于平台的按键代码,不同的键盘可能不同,但对于像多媒体键这样奇怪的键的按键选择很有用
New in pygame 2.0.0: 这个
pygame.TEXTINPUT
事件,而不是unicode
的属性pygame.KEYDOWN
。该属性text
包含输入。以下是所有常量的列表(从
pygame.locals
pygame constants )用于表示键盘键。可移植性注意:在PYGAME 1和PYGAME 2之间,关键常量的整数不同。始终使用关键常量 (
K_a
),而不是直接整型 (97
),以便您的按键处理代码在pyGame 1和pyGame 2上都能很好地工作。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 K_AC_BACK Android back button
键盘还具有修改器状态列表(来自
pygame.locals
pygame constants ),它们可以通过将它们按位或在一起来组装。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
属性的属性。pygame.KEYDOWN
和pygame.KEYUP
事件。这个mod
属性是事件发生时处于按下状态的所有修改键的位掩码。修饰符信息可以使用按位AND(除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()¶
- true if the display is receiving keyboard input from the systemget_focused() -> bool
退货
True
当显示窗口具有来自系统的键盘焦点时。如果显示器需要确保不会失去键盘焦点,它可以使用pygame.event.set_grab()
control the sharing of input devices with other applications 获取所有输入。
- pygame.key.get_pressed()¶
- get the state of all keyboard buttonsget_pressed() -> bools
返回表示键盘上每个键的状态的布尔值序列。使用键常数值为数组编制索引。一个
True
值表示按钮被按下。备注
使用此函数获取按下按钮列表不是处理用户文本输入的正确方式。无法知道按键的顺序,并且在两次调用之间可能完全不会注意到快速按下的键
pygame.key.get_pressed()
。也无法将这些按下的键转换为完全转换的字符值。请参阅pygame.KEYDOWN
世界上发生的事件pygame.event
pygame module for interacting with events and queues 排队等待此功能。
- pygame.key.get_mods()¶
- determine which modifier keys are being heldget_mods() -> int
返回一个整数,该整数表示持有的所有修改键的位掩码。使用按位运算符可以测试特定的 modifier keys 都是按下的。
- pygame.key.set_mods()¶
- temporarily set which modifier keys are pressedset_mods(int) -> None
创建的位掩码 modifier key constants 你想要强加于你的计划。
- pygame.key.set_repeat()¶
- control how held keys are repeatedset_repeat() -> Noneset_repeat(delay) -> Noneset_repeat(delay, interval) -> None
启用键盘重复时,按住的键将生成多个
pygame.KEYDOWN
事件。这个delay
参数是第一个重复的pygame.KEYDOWN
事件将被发送。在那之后,又是一个pygame.KEYDOWN
事件将按以下频率发送interval
毫秒。如果一个delay
值,并且一个interval
值或为0,则interval
将设置为与delay
。要禁用按键重复,请不带参数或使用调用此函数
delay
设置为0。在初始化PYGAME时,键重复被禁用。
- 引发
ValueError -- 如果
delay
或interval
是<0
Changed in pygame 2.0.0: A
ValueError
现在已引发(而不是pygame.error
)如果delay
或interval
<0。
- pygame.key.get_repeat()¶
- see how held keys are repeatedget_repeat() -> (delay, interval)
拿到
delay
和interval
键盘重复值。参考pygame.key.set_repeat()
control how held keys are repeated 有关这些值的说明,请参见。New in pygame 1.8.
- pygame.key.name()¶
- get the name of a key identifiername(key) -> string
从键盘按钮id常量中获取按钮的描述性名称。
- pygame.key.key_code()¶
- get the key identifier from a key namekey_code(name=string) -> 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一起使用。
New in pygame 2.0.0.
- pygame.key.start_text_input()¶
- start handling Unicode text input eventsstart_text_input() -> None
开始接收
pygame.TEXTEDITING
和pygame.TEXTINPUT
事件。如果适用,显示屏幕键盘或输入法编辑器。对于许多语言,按键将自动生成相应的
pygame.TEXTINPUT
事件。特殊键,如退出键或功能键,以及某些键组合将不会生成pygame.TEXTINPUT
事件。在其他语言中,输入单个符号可能需要多次按键或特定于语言的用户界面。在这种情况下,
pygame.TEXTINPUT
活动最好是比pygame.KEYDOWN
用于文本输入的事件。A
pygame.TEXTEDITING
事件在IME合成启动或更改时接收。它包含了作文text
,length
,和编辑start
在合成中的位置(属性text
,length
,以及start
)。当提交合成(或接收到非输入法输入)时,pygame.TEXTINPUT
事件被生成。默认情况下,文本输入事件处理处于打开状态。
New in pygame 2.0.0.
- pygame.key.stop_text_input()¶
- stop handling Unicode text input eventsstop_text_input() -> None
停止接收
pygame.TEXTEDITING
和pygame.TEXTINPUT
事件。如果屏幕上的键盘或输入法编辑器显示为pygame.key.start_text_input()
,再次隐藏它。默认情况下,文本输入事件处理处于打开状态。
为了避免在用户在游戏过程中按住某个键时触发输入法编辑器或屏幕键盘,应在文本输入完成或用户在文本框外单击时禁用文本输入。
New in pygame 2.0.0.
- pygame.key.set_text_input_rect()¶
- controls the position of the candidate listset_text_input_rect(Rect) -> None
这将设置用于使用输入法键入的矩形。它控制候选人列表的打开位置(如果支持)。
New in pygame 2.0.0.
Edit on GitHub