pygame.key
pygame中与键盘相关的模块
这个模块包含处理键盘的函数。
当键盘的按键被按下时,事件队列会得到pygame.KEYDOWN和pygame.KEYUP事件。这两个事件都有一个叫做key的整型属性表示键盘上的键。pygame.KEYDOWN事件还有一个额外的属性unicode,表示键盘输入的转后对应的字符。这个字符会考虑shift键和其它组合键的状态。
有很多键盘相关的常量,他们表示键盘上的键。下面是所有键盘常量的列表:
KeyASCII ASCII Common Name
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 ctrl
K_LCTRL left ctrl
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
键盘还有一组修饰键的状态,可以通过位或把它们组合起来:
KMOD_NONE, KMOD_LSHIFT, KMOD_RSHIFT, KMOD_SHIFT, KMOD_CAPS,
KMOD_LCTRL, KMOD_RCTRL, KMOD_CTRL, KMOD_LALT, KMOD_RALT,
KMOD_ALT, KMOD_LMETA, KMOD_RMETA, KMOD_META, KMOD_NUM, KMOD_MODE
pygame.key.get_focused
如果display取得了系统的键盘输入焦点,返回True。
pygame.key.get_focused(): return bool
当键盘从系统获得输入焦点时,这个函数返回True。如果display要保证它不失去输入焦点,则可以使用pygame.event.set_grab函数来捕获所有的输入。
pygame.key.get_pressed
取得所有键盘按键的状态
pygame.key.get_pressed(): return bools
返回一组布尔值,表示键盘上每个按键的状态。使用按键常量来索引这个数组。如果值为True,表示这个键被按下了。
用这个函数获取所有按键的状态列表不是处理用户输入文字的正确方法。你不知道键被按下的顺序。一个按键如果在两次pygame.key.get_pressed调用之间被按下,那这次按键可能完全察觉不到。也没有办法把这些按键转换成对应的字符值。参看pygame.KEYDOWN事件来正确实现这个功能。
pygame.key.get_mods
确定哪些修饰键被按下了
pygame.key.get_mods(): return int
返回一个整数,包含所有修饰键组成的位。使用位操作你可以测试某个修饰键(shift键、capslock键等等)是否被按下了。
pygame.key.set_mods
临时设置哪些修饰键被按下
pygame.key.set_mods(int): return None
创建一个由修饰键状态位组成的整数,包含你希望系统所应该处的状态。
pygame.key.set_repeat
控制一直按住的键如何重复
pygame.key.set_repeat(): return None
pygame.key.set_repeat(delay, interval): return None
当键盘重复被开启时,所有被按住不放的键会重复产生pygame.KEYDOWN事件。delay是第一个重复的pygame.KEYDOWN发生前的毫秒数。之后其它的pygame.KEYDOWN会以interval毫秒为间隔发送。如果没有传递参数,重复功能会被禁止。
当pygame初始化时,重复功能是禁止的。
pygame.key.name
获取一个键的名字
pygame.key.name(key): return string
从一个键的标识常量获得这个键的描述性名称。