- pygame.key
-
модуль pygame для работы с клавиатурой
Этот модуль содержит функции для работы с клавиатурой.
Очередь событий
pygame.eventполучает события нажатия и отпускания кнопок клавиатуры. Оба события имеют атрибутыkeyиmod.key: целочисленный идентификатор, представляющий каждую клавишу на клавиатуреmod: битовая маска всех модификаторов клавиш, которые были нажаты в момент события
Событие
pygame.KEYDOWNимеет дополнительные атрибутыunicodeиscancode.unicode: строка символов, являющаяся полностью переведённым символом, введённым с учётом клавиш Shift и Composescancode: платформенно-зависимый код клавиши, который может отличаться от клавиатуры к клавиатуре, но полезен для выбора необычных клавиш, таких как мультимедийные
Новое в pygame 2.0.0: Событие
pygame.TEXTINPUTпредпочтительнее атрибутаunicodeуpygame.KEYDOWN. Атрибутtextсодержит введённый символ.Ниже приведён список всех констант (из
pygame.locals), используемых для представления клавиш клавиатуры.Примечание по портативности: Целочисленные значения констант клавиш отличаются между pygame 1 и 2. Всегда используйте константы клавиш (
K_a) вместо целочисленных значений напрямую (97), чтобы ваш код обработки клавиш работал корректно как в pygame 1, так и в pygame 2.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 K_AC_BACK Android back button
Клавиатура также имеет список состояний модификаторов (из
pygame.locals), которые можно комбинировать с помощью побитового ИЛИ.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событий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()
-
true, если дисплей получает входные данные с клавиатуры от системыget_focused() -> bool
Возвращает
True, когда окно дисплея имеет фокус клавиатуры в системе. Если дисплей должен гарантировать, что не потеряет фокус клавиатуры, он может использоватьpygame.event.set_grab(), чтобы захватить все входные данные.
- pygame.key.get_pressed()
-
получить состояние всех кнопок клавиатурыget_pressed() -> bools
Возвращает последовательность логических значений, представляющих состояние каждой клавиши на клавиатуре. Используйте значения констант клавиш для индексации массива. Значение
Trueозначает, что кнопка нажата.Примечание
Получение списка нажатых кнопок с помощью этой функции не является правильным способом обработки ввода текста от пользователя. Нет способа узнать порядок нажатия клавиш, и быстро нажатые клавиши могут быть полностью пропущены между двумя вызовами функции
pygame.key.get_pressed(). Также нет способа преобразовать эти нажатые клавиши в значение полностью переведённого символа. Для этой функциональности см. событияpygame.KEYDOWNв очередиpygame.event.Новое в pygame 2.2.0: Коллекция логических значений, возвращаемых функцией
get_pressed, не может быть итерирована, так как индексы внутреннего кортежа не соответствуют кодам клавиш.
- pygame.key.get_mods()
-
определить, какие клавиши-модификаторы удерживаютсяget_mods() -> int
Возвращает целое число, представляющее битовую маску всех удерживаемых клавиш-модификаторов. Используя побитовые операторы, вы можете проверить, нажаты ли конкретные клавиши-модификаторы.
- pygame.key.set_mods()
-
временно установить, какие клавиши-модификаторы нажатыset_mods(int) -> None
Создайте битовую маску констант клавиш-модификаторов, которые вы хотите установить в вашей программе.
- pygame.key.set_repeat()
-
контроль повторения удерживаемых клавишset_repeat() -> Noneset_repeat(delay) -> Noneset_repeat(delay, interval) -> None
Когда повторение клавиш включено, удерживаемые клавиши будут генерировать несколько событий
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.
- pygame.key.get_repeat()
-
получить значения повторения удерживаемых клавишget_repeat() -> (delay, interval)
Получить значения задержки
delayи интервалаintervalповторения клавиш. См.pygame.key.set_repeat()для описания этих значений.Новое в pygame 1.8.
- pygame.key.name()
-
получить имя идентификатора клавишиname(key, use_compat=True) -> str
Получить описательное имя кнопки по идентификатору клавиши. Возвращает пустую строку (
"") если клавиша не найдена.Если аргумент
use_compatимеет значениеTrue(по умолчанию), эта функция возвращает устаревшее имя клавиши, где применимо. Ожидается, что возвращаемое значение будет одинаковым в разных версиях pygame (при условии, что соответствующая константа клавиши существует и уникальна). Если возвращаемое значение передано в функциюkey_code, будет возвращена исходная константа.Экспериментально: Параметр
use_compatвсе ещё находится в стадии разработки для тестирования и обратной связи. Он может измениться. Пожалуйста, оставьте обратную связь по use_compat разработчикам.Если этот аргумент имеет значение
False, возвращаемое имя может быть более привлекательным для отображения и может охватывать более широкий спектр клавиш, чем при использованииuse_compat, но нет гарантий, что это имя будет одинаковым в разных версиях pygame. Если возвращённое имя передано в функциюkey_code, будет возвращена исходная константа (это деталь реализации, которая может быть изменена позже, не полагайтесь на это).Изменено в pygame 2.1.3: Добавлен аргумент
use_compatи гарантирована стабильность API для него
- pygame.key.key_code()
-
получить идентификатор клавиши по имениkey_code(name=string) -> 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 -- если имя клавиши неизвестно.
Новое в pygame 2.0.0.
- pygame.key.start_text_input()
-
начало обработки событий ввода текста Юникодstart_text_input() -> None
Начать прием
pygame.TEXTEDITINGиpygame.TEXTINPUTсобытий. Применимо, показывать экранную клавиатуру или редактор IME.Для многих языков нажатия клавиш автоматически сгенерируют соответствующее
pygame.TEXTINPUTсобытие. Специальные клавиши, такие как Esc или функциональные клавиши, и определенные комбинации клавиш не будут генерироватьpygame.TEXTINPUTсобытия.В других языках ввод одного символа может потребовать несколько нажатий клавиш или пользовательского интерфейса, специфичного для языка. В этом случае
pygame.TEXTINPUTсобытия предпочтительнееpygame.KEYDOWNсобытий для ввода текста.pygame.TEXTEDITINGсобытие принимается при запуске или изменении составления IME. Оно содержит составлениеtext,length, и редактированиеstartпозиции внутри составления (атрибутыtext,length, иstart, соответственно). Когда составление подтверждается (или получен ввод без IME), генерируетсяpygame.TEXTINPUTсобытие.Обработка событий ввода текста включена по умолчанию.
Новое в pygame 2.0.0.
- pygame.key.stop_text_input()
-
остановка обработки событий ввода текста Юникодstop_text_input() -> None
Остановить прием
pygame.TEXTEDITINGиpygame.TEXTINPUTсобытий. Если экранная клавиатура или редактор IME были показаны с помощьюpygame.key.start_text_input(), скрыть их снова.Обработка событий ввода текста включена по умолчанию.
Чтобы избежать запуска редактора IME или экранной клавиатуры, когда пользователь удерживает клавишу во время игры, ввод текста должен быть отключен после завершения ввода текста или когда пользователь нажимает вне текстового поля.
Новое в pygame 2.0.0.
- pygame.key.set_text_input_rect()
-
управление позицией списка кандидатовset_text_input_rect(Rect) -> None
Это устанавливает прямоугольник, используемый для набора текста с помощью IME. Он управляет тем, где откроется список кандидатов, если это поддерживается.
Новое в pygame 2.0.0.
Изменить на GitHub
© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/key.html