zoukankan      html  css  js  c++  java
  • 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的新功能。

  • 相关阅读:
    jQuery使用工具集
    JQuery解决鼠标单双击冲突问题
    线程池
    配置文件application.properties参数详解
    SpringBoot整合SpringDataJPA
    获取数据库的自增主键(六)
    【使用篇二】邮箱自动化配置集成(18)
    Quartz自动化配置集成
    Cron表达式详解
    标准盒模型和怪异盒模型的区别
  • 原文地址:https://www.cnblogs.com/Renqy/p/12841745.html
Copyright © 2011-2022 走看看