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

从一个键的标识常量获得这个键的描述性名称。

The end

ch3n2k.com | Copyright (c) 2004-2020 czk.