Pygame/key

Language.png本文当前翻译进度约为50%。
The current progress of translating this article is approximately 50%。

pygame.key

处理键盘的 pygame 模块。

该模块也具有操作键盘的功能。

按下与松开键盘上的按键,事件队列会被推送 pygame.KEYDOWN 与 pygame.KEYUP 事件。取得された各イベントは、キーボードの各キーを表す数値情報を持っています。


pygame.KEYDOWN

イベントはさらにユニコードとスキャンコードに関する情報を持っています。ユニコード情報は入力されたキーを文字に変換した値を表します。これはshiftキーと別のキーを同時押しするような場合も考慮されてます。スキャンコード情報はユーザーが使用するキーボード環境固有のキーコードを表します。取得されるスキャンコードは使用されるキーボードによって変わることがありますが、マルチメディアキーボードのように普通とは違った配列のキー環境で入力キーを特定する場合に便利です。

Pygameには入力キーを識別するための多くのキーボード定数があり、 それらを使用してキーボードのどのキーが押されたかを特定します。下記がキーボード定数の一覧です。

常量名 ASCII 通用名
K_BACKSPACE 退格
K_TAB 制表符
K_CLEAR clear
K_RETURN 回车
K_PAUSE 暂停
K_ESCAPE ^[ 退出键
K_SPACE 空格
K_EXCLAIM ! 感叹号
K_QUOTEDBL " 双引号
K_HASH # 井号
K_DOLLAR $ 美元符号
K_AMPERSAND & and 符号
K_QUOTE quote
K_LEFTPAREN ( 左括号
K_RIGHTPAREN ) 右括号
K_ASTERISK * 星号
K_PLUS + 加号
K_COMMA , 逗号
K_MINUS - 减号
K_PERIOD . 小数点
K_SLASH / 斜杠
K_0..K_9 0..9 0..9(主键盘)
K_COLON : 冒号
K_SEMICOLON ; 引号
K_LESS < 小于号
K_EQUALS = 等于号
K_GREATER > 大于号
K_QUESTION ? 问号
K_AT @ At 符号
K_LEFTBRACKET [ 左方括号
K_BACKSLASH \ 反斜线
K_RIGHTBRACKET ] 右方括号
K_CARET ^ 脱字号
K_UNDERSCORE _ 下滑线
K_BACKQUOTE ` 抑音符
K_a..K_z a..z a..z
K_DELETE delete
K_KP0..K_KP9 0..9 小键盘0..9
K_KP_PERIOD . 小键盘小数点
K_KP_DIVIDE / 小键盘除号
K_KP_MULTIPLY * 小键盘乘号
K_KP_MINUS - 小键盘减号
K_KP_PLUS + 小键盘加号
K_KP_ENTER 小键盘回车
K_KP_EQUALS = 小键盘等于号
K_UP 上箭头
K_DOWN 下箭头
K_RIGHT 右箭头
K_LEFT 左箭头
K_INSERT 插入键
K_HOME Home 键
K_END End 键
K_PAGEUP 上翻页
K_PAGEDOWN 下翻页
K_F1..K_F12 F1..F12
K_F13..K_F15 F13..F15
K_NUMLOCK 数字锁定
K_CAPSLOCK 大写锁定
K_SCROLLOCK 滚动锁定
K_RSHIFT 右 Shift
K_LSHIFT 左 Shift
K_RCTRL 右 Ctrl
K_LCTRL 左 Ctrl
K_RALT 右 Alt
K_LALT 左 Alt
K_RMETA right meta
K_LMETA left meta
K_LSUPER 左 Windows 键
K_RSUPER 右 Windows 键
K_MODE mode shift
K_HELP help
K_PRINT print screen(截屏键)
K_SYSREQ Sysrq
K_BREAK Break
K_MENU 菜单键
K_POWER Power
K_EURO Euro

またPygameには修飾キーの入力状態を表す値もあり、それを下記の修飾キー定数と論理和で組み合わせることで入力状態を確認できます。

常量名 描述
KMOD_NONE 无修饰键
KMOD_LSHIFT 左 Shift 键
MOD_RSHIFT 右 Shift 键
KMOD_SHIFT 任一 Shift 键
KMOD_LCTRL 左 Ctrl 键
KMOD_RCTRL 右 Ctrl 键
KMOD_CTRL 任一 Ctrl 键
KMOD_LALT 左 Alt 键
KMOD_RALT 右 Alt 键
KMOD_ALT 任一 Alt 键
KMOD_LMETA 左 Windows 键
KMOD_RMETA 右 Windows 键
KMOD_META 任一 Windows 键
KMOD_CAPS 大写锁定
KMOD_NUM 数字锁定
KMOD_MODE Mode/AltGr 键

pygame.key.get_focused()

窗口是否被聚焦

pygame.key.get_focused(): return bool

如果窗口是被聚焦,可获取键盘输入的状态,则返回 true。 ウィンドウがキーボードからの入力情報を受け取れる状態であればtrueが戻り値として返されます。ウィンドウが常にキーボード入力情報を受け取れる状態にするためには、pygame.event.set_grab命令を使用してコンピューターの全ての入力処理を独占的に確保する必要があります。

pygame.key.get_pressed()

取得所有按键的输入状态 pygame.key.get_pressed() → 布尔数组 全てのキーの入力状態を表すboolean型の配列を戻り値として返します。キーボード定数を配列の添え字として使用してください。指定した位置の値がTrueだった場合は、そのキーボード定数に該当するキーが押されたことになります。

この命令を使うと入力されたキー一覧を取得することができますが、ユーザーのテキスト入力を処理する場合にこの命令を使うのは止めたほうがいいでしょう。この命令ではキーの押された順番まではわかりませんし、pygame.key.get_pressed命令が実行されるまでの間隔に高速でキーを入力されてしまうと入力情報を読み取ることができないのです。 この命令で取得できる入力キー情報を使ってユーザーからの文章入力処理を実装することはできないでしょう。もし実装したいのであれば、イベントキューに送られるpygame.KEYDOWNイベントを参照してください。

pygame.key.get_mods()

判断修饰键的状态

pygame.key.get_mods() → 整数

判断哪个修饰键被按下。

入力されている全ての修飾キーの状態をビットマスクで表した値を取得します。得られたビットマスクをビット演算子で処理することで、shiftキーやcapslockキー、それ以外のどのキーが押されたかを調べることができます。

# 使 用 例
if mods & KMOD_LSHIFT: # 右 SHIFT 键被按下的情况
if mods & KMOD_SHIFT: # SHIFT 键被按下的情况
if mods & KMOD_SHIFT and mods & KMOD_CTRL: # SHIFT 键与 CTRL 键被按下的情况

pygame.key.set_mods()

暂时设置一下特定的修饰键状态

pygame.key.set_mods(int整数) → 无

暂时为程序设置一下特定的修饰键状态的位掩码。

pygame.key.set_repeat()

キーを押しっぱなしにした場合の繰り返し入力について設定します

pygame.key.set_repeat() → 无

pygame.key.set_repeat(delay延迟, interval间隔) → 无

キーリピートが有効になっている場合、キーが押しっぱなしの状態だと何度も pygame.KEYDOWNイベントが発生します。 delay引数は押しっぱなし状態でpygame.KEYDOWNが発生する間隔をミリ秒単位で表した数値です。 After that another pygame.KEYDOWN will be sent every interval milliseconds.引数を設定しなかった場合、キーリピート設定は無効になります。

在 pygame 被初始化时,键重复功能是禁用的。

如果延迟或间隔小于零,会引起 pygame.error (1.X.X) 或 ValueError (2.0.0+) 错误。

pygame.key.get_repeat()

キーを押しっぱなしにした場合の繰り返し入力について確認します

pygame.key.get_repeat() → (delay延迟, interval间隔)

キーリピートが有効になっている場合、キーが押しっぱなしの状態だと何度も pygame.KEYDOWNイベントが発生します。delay引数は押しっぱなし状態でpygame.KEYDOWNが発生する間隔をミリ秒単位で表した数値です。 After that another pygame.KEYDOWN will be sent every interval milliseconds.

pygameが初期化される際、キーリピート機能は無効に設定されます。

pygame.key.name()

キーを特定するための名前を取得します。 pygame.key.name(key) → 字符串 引数として渡したキーボード定数から、キーを特定するための名前を取得します。

pygame.key.start_text_input()

开始接受输入法输入 (2.0.0+)

start_text_input() → 无

pygame.key.stop_text_input()

停止接受输入法输入 (2.0.0+)

stop_text_input() → 无

pygame.key.set_text_input_rect()

设置候选列表的位置 (2.0.0+)

set_text_input_rect(Rect矩形) → 无


pygame 文档中文翻译
常用ColordisplaydraweventfontimagekeylocalsmixermouseRectSurfacetimemusicpygame
高级cursorsjoystickmaskspritetransformBufferProxyfreetypegfxdrawmidiOverlayPixelArraypixelcopysndarraysurfarraymath
其它cameracdromscraptestssurfarrayversion
链接官网英文文档日文译文