Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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.