目录
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
1. pygame.key.get_focused
如果display取得了系统的键盘输入焦点,返回True。
pygame.key.get_focused(): return bool
当键盘从系统获得输入焦点时,这个函数返回True。如果display要保证它不失去输入焦点,则可以使用pygame.event.set_grab函数来捕获所有的输入。
2. pygame.key.get_pressed
取得所有键盘按键的状态
pygame.key.get_pressed(): return bools
返回一组布尔值,表示键盘上每个按键的状态。使用按键常量来索引这个数组。如果值为True,表示这个键被按下了。
用这个函数获取所有按键的状态列表不是处理用户输入文字的正确方法。你不知道键被按下的顺序。一个按键如果在两次pygame.key.get_pressed调用之间被按下,那这次按键可能完全察觉不到。也没有办法把这些按键转换成对应的字符值。参看pygame.KEYDOWN事件来正确实现这个功能。
3. pygame.key.get_mods
确定哪些修饰键被按下了
pygame.key.get_mods(): return int
返回一个整数,包含所有修饰键组成的位。使用位操作你可以测试某个修饰键(shift键、capslock键等等)是否被按下了。
4. pygame.key.set_mods
临时设置哪些修饰键被按下
pygame.key.set_mods(int): return None
创建一个由修饰键状态位组成的整数,包含你希望系统所应该处的状态。
5. 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初始化时,重复功能是禁止的。
6. pygame.key.name
获取一个键的名字
pygame.key.name(key): return string
从一个键的标识常量获得这个键的描述性名称。