InputEventKey
Наследует: InputEventWithModifiers < InputEventFromWindow < InputEvent < Resource < RefCounted < Object
Представляет собой нажатие или отпускание клавиши на клавиатуре.
Описание
Событие ввода для клавиш на клавиатуре. Поддерживает нажатия клавиш, отпускания клавиш и события echo. Его также можно получить в Node._unhandled_key_input().
Примечание: События, полученные с клавиатуры, обычно имеют все установленные свойства. Сопоставления событий должны иметь только один из keycode, physical_keycode или unicode.
При сравнении событий свойства проверяются в следующем приоритете - keycode, physical_keycode и unicode. События с первым совпадающим значением будут считаться равными.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
as_text_key_label() const |
|
as_text_keycode() const |
|
as_text_location() const |
|
as_text_physical_keycode() const |
|
get_key_label_with_modifiers() const |
|
get_keycode_with_modifiers() const |
|
Описания свойств
Если true, клавиша уже была нажата до этого события. Событие эха — это повторяющееся событие клавиши, отправляемое, когда пользователь удерживает клавишу.
Примечание: Скорость отправки событий эха обычно составляет около 20 событий в секунду (после удержания клавиши примерно полсекунды). Однако пользователь может изменить задержку/скорость повтора клавиши или полностью отключить ее в настройках операционной системы. Чтобы убедиться, что ваш проект работает правильно во всех конфигурациях, не предполагайте, что у пользователя есть определенная конфигурация повтора клавиши в поведении вашего проекта.
Представляет локализованную метку, напечатанную на клавише в текущей раскладке клавиатуры, которая соответствует одной из констант Key или любому допустимому символу Unicode. Метки клавиш предназначены для подсказок при нажатии клавиш.
Для раскладок клавиатуры с одной меткой на клавише это эквивалентно keycode.
Чтобы получить удобочитаемое представление InputEventKey, используйте OS.get_keycode_string(event.key_label), где event — это InputEventKey.
+-----+ +-----+
| Q | | Q | - "Q" - keycode
| Й | | ض | - "Й" and "ض" - key_label
+-----+ +-----+
Латинская метка, напечатанная на клавише в текущей раскладке клавиатуры, соответствует одной из констант Key. Коды клавиш предназначены для сочетаний клавиш, выражаемых с помощью стандартной латинской клавиатуры, например, Ctrl + S для сочетания клавиш «Сохранить».
Чтобы получить удобочитаемое представление InputEventKey, используйте OS.get_keycode_string(event.keycode), где event — это InputEventKey.
+-----+ +-----+
| Q | | Q | - "Q" - keycode
| Й | | ض | - "Й" and "ض" - key_label
+-----+ +-----+
KeyLocation location = 0 🔗
void set_location(value: KeyLocation)
KeyLocation get_location()
Обозначает расположение клавиши, которая имеет как левую, так и правую версии, например Shift или Alt.
Представляет физическое местоположение клавиши на 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))
public override void _Input(InputEvent @event)
{
if (@event is InputEventKey inputEventKey)
{
var keycode = DisplayServer.KeyboardGetKeycodeFromPhysical(inputEventKey.PhysicalKeycode);
var label = DisplayServer.KeyboardGetLabelFromPhysical(inputEventKey.PhysicalKeycode);
GD.Print(OS.GetKeycodeString(keycode));
GD.Print(OS.GetKeycodeString(label));
}
}
Если true, состояние клавиши нажато. Если false, состояние клавиши отпущено.
Основной код символа 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.