Pygame的KEYDOWN和KEYUP

pygame.KEYDOWN 按下键盘时

pygame.KEYUP 释放键盘时


一、基本资料


pygame.key

pygame模块与键盘一起使用
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.KEYDOWNpygame.KEYUP 当按下和释放键盘按钮事件。这两个事件都有 keymod属性。

  • key:一个整数ID,代表键盘上的每个键
  • mod 事件发生时处于按下状态的所有修改键的位掩码

pygame.KEYDOWN事件具有其他属性unicode scancode

  • unicode:一个字符串,即输入的完全翻译后的字符,其中考虑了shift和撰写键
  • scancode:特定于平台的键代码,可能因键盘而异,但对于选择诸如多媒体键之类的奇怪键非常有用

pygame 2.0.0的新功能:pygame.TEXTINPUT事件优先于的unicode属性pygame.KEYDOWN该属性text包含输入。

以下是用于表示键盘按键的所有常量(来自pygame.localspygame常量的列表

pygame
Constant      ASCII   Description
---------------------------------
K_BACKSPACE         backspace
K_TAB         	      tab
K_CLEAR               clear
K_RETURN      
      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    
      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.localspygame常量),可以通过将它们按位进行“或”运算来组合。

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.KEYDOWNpygame.KEYUPmodKMOD_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
get_focused()->布尔

True当显示窗口具有系统的键盘焦点时返回如果显示器需要确保它不会失去键盘焦点,则可以使用pygame.event.set_grab()控件与其他应用程序共享输入设备来获取所有输入。

评论2
pygame.key.get_pressed
获取所有键盘按钮的状态
get_pressed()->布尔

返回一系列布尔值,它们表示键盘上每个键的状态。使用键常量值索引数组。True 值表示该按钮被按下。

注意

 

使用此功能获取按钮列表不是处理用户输入文本的正确方法。无法知道按键的顺序,并且在两次调用之间无法完全注意到快速按下的按键pygame.key.get_pressed()也没有办法将这些按下的键转换为完全转换的字符值。请参阅pygame模块pygame.KEYDOWN事件以pygame.event与事件进行交互,并为此功能排队。

评论6
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-如果delayinterval<0

在pygame 2.0.0中更改:ValueError现在,pygame.error如果delayinterval<0,引发A (而不是 

评论9
pygame.key.get_repeat
查看如何重复按住键
get_repeat()->(延迟,间隔)

获取delayinterval键盘重复值。有关这些值的说明,请参考 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.TEXTEDITINGpygame.TEXTINPUT 处理IME的事件。

pygame.TEXTEDITING当启动或更改IME合成时,会收到一个事件。它包含组合物textlength和编辑start位置在组合物内(属性 textlength以及start,分别地)。当提交组合(或接收到非IME输入)时,将pygame.TEXTINPUT生成一个事件。

正常pygame.TEXTINPUT事件不依赖于此。

pygame 2.0.0的新功能。

pygame.key.stop_text_input
停止处理IME成分
stop_text_input()->无

停止接收pygame.TEXTEDITINGpygame.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的新功能。

原文地址:https://www.cnblogs.com/Renqy/p/12841745.html