Pygame的KEYDOWN和KEYUP
pygame.KEYDOWN 按下键盘时
pygame.KEYUP 释放键盘时
pygame.key
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.KEYDOWN
和pygame.KEYUP
当按下和释放键盘按钮事件。这两个事件都有 key
和mod
属性。
该pygame.KEYDOWN
事件具有其他属性unicode
和 scancode
。
unicode
:一个字符串,即输入的完全翻译后的字符,其中考虑了shift和撰写键scancode
:特定于平台的键代码,可能因键盘而异,但对于选择诸如多媒体键之类的奇怪键非常有用
pygame 2.0.0的新功能:该pygame.TEXTINPUT
事件优先于的unicode
属性pygame.KEYDOWN
。该属性text
包含输入。
以下是用于表示键盘按键的所有常量(来自pygame.locals
pygame常量)的列表。
pygame
Constant ASCII Description
---------------------------------
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 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.locals
pygame常量),可以通过将它们按位进行“或”运算来组合。
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.KEYDOWN
pygame.KEYUP
mod
KMOD_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
()-
如果显示器正在从系统接收键盘输入,则为trueget_focused()->布尔
评论2True
当显示窗口具有系统的键盘焦点时返回。如果显示器需要确保它不会失去键盘焦点,则可以使用pygame.event.set_grab()
控件与其他应用程序共享输入设备来获取所有输入。
pygame.key.
get_pressed
()-
获取所有键盘按钮的状态get_pressed()->布尔
返回一系列布尔值,它们表示键盘上每个键的状态。使用键常量值索引数组。甲
True
值表示该按钮被按下。注意
使用此功能获取按钮列表不是处理用户输入文本的正确方法。无法知道按键的顺序,并且在两次调用之间无法完全注意到快速按下的按键
pygame.key.get_pressed()
。也没有办法将这些按下的键转换为完全转换的字符值。请参阅pygame模块pygame.KEYDOWN
上的事件以pygame.event
与事件进行交互,并为此功能排队。
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-如果 delay
或interval
<0在pygame 2.0.0中更改:
ValueError
现在,pygame.error
如果delay
或interval
<0,则引发A (而不是 )。
pygame.key.
get_repeat
()-
查看如何重复按住键get_repeat()->(延迟,间隔)
获取
delay
和interval
键盘重复值。有关这些值的说明,请参考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.TEXTEDITING
和pygame.TEXTINPUT
处理IME的事件。pygame.TEXTEDITING
当启动或更改IME合成时,会收到一个事件。它包含组合物text
,length
和编辑start
位置在组合物内(属性text
,length
以及start
,分别地)。当提交组合(或接收到非IME输入)时,将pygame.TEXTINPUT
生成一个事件。正常
pygame.TEXTINPUT
事件不依赖于此。pygame 2.0.0的新功能。
pygame.key.
stop_text_input
()-
停止处理IME成分stop_text_input()->无
停止接收
pygame.TEXTEDITING
和pygame.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的新功能。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步