InputEventKey

Наследует: InputEventWithModifiers < InputEventFromWindow < InputEvent < Resource < RefCounted < Object

Представляет собой нажатие или отпускание клавиши на клавиатуре.

Описание

Событие ввода для клавиш на клавиатуре. Поддерживает нажатия клавиш, отпускания клавиш и события echo. Его также можно получить в Node._unhandled_key_input().

Примечание: События, полученные с клавиатуры, обычно имеют все установленные свойства. Сопоставления событий должны иметь только один из keycode, physical_keycode или unicode.

При сравнении событий свойства проверяются в следующем приоритете - keycode, physical_keycode и unicode. События с первым совпадающим значением будут считаться равными.

Обучающие материалы

Свойства

bool

echo

false

Key

key_label

0

Key

keycode

0

KeyLocation

location

0

Key

physical_keycode

0

bool

pressed

false

int

unicode

0

Методы

String

as_text_key_label() const

String

as_text_keycode() const

String

as_text_location() const

String

as_text_physical_keycode() const

Key

get_key_label_with_modifiers() const

Key

get_keycode_with_modifiers() const

Key

get_physical_keycode_with_modifiers() const


Описания свойств

bool echo = false 🔗

  • void set_echo(value: bool)

  • bool is_echo()

Если true, клавиша уже была нажата до этого события. Событие эха — это повторяющееся событие клавиши, отправляемое, когда пользователь удерживает клавишу.

Примечание: Скорость отправки событий эха обычно составляет около 20 событий в секунду (после удержания клавиши примерно полсекунды). Однако пользователь может изменить задержку/скорость повтора клавиши или полностью отключить ее в настройках операционной системы. Чтобы убедиться, что ваш проект работает правильно во всех конфигурациях, не предполагайте, что у пользователя есть определенная конфигурация повтора клавиши в поведении вашего проекта.


Key key_label = 0 🔗

  • void set_key_label(value: Key)

  • Key get_key_label()

Представляет локализованную метку, напечатанную на клавише в текущей раскладке клавиатуры, которая соответствует одной из констант Key или любому допустимому символу Unicode. Метки клавиш предназначены для подсказок при нажатии клавиш.

Для раскладок клавиатуры с одной меткой на клавише это эквивалентно keycode.

Чтобы получить удобочитаемое представление InputEventKey, используйте OS.get_keycode_string(event.key_label), где event — это InputEventKey.

+-----+ +-----+
| Q   | | Q   | - "Q" - keycode
|   Й | |  ض | - "Й" and "ض" - key_label
+-----+ +-----+

Key keycode = 0 🔗

  • void set_keycode(value: Key)

  • Key get_keycode()

Латинская метка, напечатанная на клавише в текущей раскладке клавиатуры, соответствует одной из констант Key. Коды клавиш предназначены для сочетаний клавиш, выражаемых с помощью стандартной латинской клавиатуры, например, Ctrl + S для сочетания клавиш «Сохранить».

Чтобы получить удобочитаемое представление InputEventKey, используйте OS.get_keycode_string(event.keycode), где event — это InputEventKey.

+-----+ +-----+
| Q   | | Q   | - "Q" - keycode
|   Й | |  ض | - "Й" and "ض" - key_label
+-----+ +-----+

KeyLocation location = 0 🔗

Обозначает расположение клавиши, которая имеет как левую, так и правую версии, например Shift или Alt.


Key physical_keycode = 0 🔗

  • void set_physical_keycode(value: Key)

  • Key get_physical_keycode()

Представляет физическое местоположение клавиши на 101/102-клавишной американской клавиатуре QWERTY, соответствующее одной из констант Key. Физические коды клавиш, предназначенные для игрового ввода, например, для перемещения с помощью WASD, где важно только местоположение клавиш.

Для получения удобочитаемого представления InputEventKey используйте OS.get_keycode_string() в сочетании с DisplayServer.keyboard_get_keycode_from_physical() или DisplayServer.keyboard_get_label_from_physical():

func _input(event):
    if event is InputEventKey:
        var keycode = DisplayServer.keyboard_get_keycode_from_physical(event.physical_keycode)
        var label = DisplayServer.keyboard_get_label_from_physical(event.physical_keycode)
        print(OS.get_keycode_string(keycode))
        print(OS.get_keycode_string(label))

bool pressed = false 🔗

  • void set_pressed(value: bool)

  • bool is_pressed()

Если true, состояние клавиши нажато. Если false, состояние клавиши отпущено.


int unicode = 0 🔗

  • void set_unicode(value: int)

  • int get_unicode()

Основной код символа Unicode (если применимо), сдвинутый клавишами-модификаторами. Коды символов Unicode для составных символов и сложных шрифтов могут быть недоступны, если не активен режим ввода IME. См. Window.set_ime_active() для получения дополнительной информации. Коды символов Unicode предназначены для ввода текста.

Примечание: Это свойство устанавливается движком только для события нажатия. Если событие отправляется IME или виртуальной клавиатурой, соответствующее событие отпускания клавиши не отправляется.


Описания метода

String as_text_key_label() const 🔗

Возвращает String-представление key_label события и модификаторов.


String as_text_keycode() const 🔗

Возвращает String представление keycode и модификаторов события.


String as_text_location() const 🔗

Возвращает String представление location события. Это будет пустая строка, если событие не относится к конкретному местоположению.


String as_text_physical_keycode() const 🔗

Возвращает String-представление physical_keycode события и модификаторов.


Key get_key_label_with_modifiers() const 🔗

Возвращает локализованную метку клавиши в сочетании с модификаторами, такими как Shift или Alt. См. также InputEventWithModifiers.

Чтобы получить понятное человеку представление InputEventKey с модификаторами, используйте OS.get_keycode_string(event.get_key_label_with_modifiers()), где event — это InputEventKey.


Key get_keycode_with_modifiers() const 🔗

Возвращает латинский код клавиши в сочетании с модификаторами, такими как Shift или Alt. См. также InputEventWithModifiers.

Чтобы получить понятное человеку представление InputEventKey с модификаторами, используйте OS.get_keycode_string(event.get_keycode_with_modifiers()), где event — это InputEventKey.


Key get_physical_keycode_with_modifiers() const 🔗

Возвращает физический код клавиши в сочетании с модификаторами, такими как Shift или Alt. См. также InputEventWithModifiers.

Чтобы получить понятное человеку представление InputEventKey с модификаторами, используйте OS.get_keycode_string(event.get_physical_keycode_with_modifiers()), где event — это InputEventKey.