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.

Input

Успадковує: Object

Однотон для введення даних.

Опис

Input однотонні ручки клавішні преси, кнопки миші і рух, ігрові блоки і вхідні дії. Дії та події можуть бути встановлені в вкладці ** Вхідна карта ** Проект > Параметри проекту, або з класом InputMap.

Примітка: Input методи відображають глобальний вхідний стан і не впливають на управління.accept_event() або Viewport.set_input_as_handled(), оскільки ці методи мають справу з введенням способу пропаговано в SceneTree.

Посібники

Властивості

bool

emulate_mouse_from_touch

bool

emulate_touch_from_mouse

bool

ignore_joypad_on_unfocused_application

MouseMode

mouse_mode

bool

use_accumulated_input

Методи

void

action_press(action: StringName, strength: float = 1.0)

void

action_release(action: StringName)

void

add_joy_mapping(mapping: String, update_existing: bool = false)

void

clear_joy_motion_sensors_calibration(device: int)

void

flush_buffered_events()

Vector3

get_accelerometer() const

float

get_action_raw_strength(action: StringName, exact_match: bool = false) const

float

get_action_strength(action: StringName, exact_match: bool = false) const

float

get_axis(negative_action: StringName, positive_action: StringName) const

Array[int]

get_connected_joypads()

CursorShape

get_current_cursor_shape() const

Vector3

get_gravity() const

Vector3

get_gyroscope() const

Vector3

get_joy_accelerometer(device: int) const

float

get_joy_axis(device: int, axis: JoyAxis) const

Vector3

get_joy_gravity(device: int) const

String

get_joy_guid(device: int) const

Vector3

get_joy_gyroscope(device: int) const

Dictionary

get_joy_info(device: int) const

Dictionary

get_joy_motion_sensors_calibration(device: int) const

float

get_joy_motion_sensors_rate(device: int) const

String

get_joy_name(device: int)

float

get_joy_vibration_duration(device: int)

float

get_joy_vibration_remaining_duration(device: int)

Vector2

get_joy_vibration_strength(device: int)

Vector2

get_last_mouse_screen_velocity()

Vector2

get_last_mouse_velocity()

Vector3

get_magnetometer() const

BitField[MouseButtonMask]

get_mouse_button_mask() const

Vector2

get_vector(negative_x: StringName, positive_x: StringName, negative_y: StringName, positive_y: StringName, deadzone: float = -1.0) const

bool

has_joy_light(device: int) const

bool

has_joy_motion_sensors(device: int) const

bool

has_joy_vibration(device: int) const

bool

is_action_just_pressed(action: StringName, exact_match: bool = false) const

bool

is_action_just_pressed_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const

bool

is_action_just_released(action: StringName, exact_match: bool = false) const

bool

is_action_just_released_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const

bool

is_action_pressed(action: StringName, exact_match: bool = false) const

bool

is_anything_pressed() const

bool

is_joy_button_pressed(device: int, button: JoyButton) const

bool

is_joy_known(device: int)

bool

is_joy_motion_sensors_calibrated(device: int) const

bool

is_joy_motion_sensors_calibrating(device: int) const

bool

is_joy_motion_sensors_enabled(device: int) const

bool

is_joy_vibrating(device: int)

bool

is_key_label_pressed(keycode: Key) const

bool

is_key_pressed(keycode: Key) const

bool

is_mouse_button_pressed(button: MouseButton) const

bool

is_physical_key_pressed(keycode: Key) const

void

parse_input_event(event: InputEvent)

void

remove_joy_mapping(guid: String)

void

set_accelerometer(value: Vector3)

void

set_custom_mouse_cursor(image: Resource, shape: CursorShape = 0, hotspot: Vector2 = Vector2(0, 0))

void

set_default_cursor_shape(shape: CursorShape = 0)

void

set_gravity(value: Vector3)

void

set_gyroscope(value: Vector3)

void

set_joy_light(device: int, color: Color)

void

set_joy_motion_sensors_calibration(device: int, calibration_info: Dictionary)

void

set_joy_motion_sensors_enabled(device: int, enable: bool)

void

set_magnetometer(value: Vector3)

bool

should_ignore_device(vendor_id: int, product_id: int) const

void

start_joy_motion_sensors_calibration(device: int)

void

start_joy_vibration(device: int, weak_magnitude: float, strong_magnitude: float, duration: float = 0)

void

stop_joy_motion_sensors_calibration(device: int)

void

stop_joy_vibration(device: int)

void

vibrate_handheld(duration_ms: int = 500, amplitude: float = -1.0)

void

warp_mouse(position: Vector2)


Сигнали

joy_connection_changed(device: int, connected: bool) 🔗

Випробувано, коли підключено пристрій Hotpad.


Переліки

enum MouseMode: 🔗

MouseMode MOUSE_MODE_VISIBLE = 0

Зробіть курсор мишки видимим, якщо він прихований.

MouseMode MOUSE_MODE_HIDDEN = 1

Зробіть курсор миші, прихований, якщо це видно.

MouseMode MOUSE_MODE_CAPTURED = 2

Захоплює мишу. Миша буде прихована і її позиція закривається в центрі вікна менеджера.

Примітка: Якщо ви хочете обробити рух мишки в цьому режимі, вам потрібно скористатися InputEventMouseMotion.relative.

MouseMode MOUSE_MODE_CONFINED = 3

Налаштуйте курсор миші на ігровому вікні, і зробіть його видимими.

MouseMode MOUSE_MODE_CONFINED_HIDDEN = 4

Налаштуйте курсор миші на ігровому вікні, і зробіть його прихованим.

MouseMode MOUSE_MODE_MAX = 5

Максимальне значення MouseMode.


enum CursorShape: 🔗

CursorShape CURSOR_ARROW = 0

Перевірити курсор. Стандарт, курсор за замовчуванням.

CursorShape CURSOR_IBEAM = 1

I-beam курсор. Зазвичай використовується для відображення, коли натискається курсор тексту.

CursorShape CURSOR_POINTING_HAND = 2

Точка ручного курсора. Зазвичай використовується для позначення тостера за посиланням або іншим взаємодієним елементом.

CursorShape CURSOR_CROSS = 3

Перетин курсора. Зазвичай з'являється над регіонами, в яких може бути виконана робота малюнка або підбір.

CursorShape CURSOR_WAIT = 4

Зачекайте курсор. Повідомляє, що додаток зайнятий, що не можна використовувати під час операції (наприклад, щось блокує основну нитку).

CursorShape CURSOR_BUSY = 5

Автобусний курсор. Повідомляє, що додаток зайнято, і це все ще можна при експлуатації.

CursorShape CURSOR_DRAG = 6

Перетягніть курсор. Зазвичай відображається при перетягування щось.

Примітка: Windows не вистачає курсора, тому CURSOR_DRAG є таким же, як CURSOR_MOVE для цієї платформи.

CursorShape CURSOR_CAN_DROP = 7

Може падіння курсора. Як правило, відображається при перетягування щось, щоб вказати, що він може бути скиданий на поточному положенні.

CursorShape CURSOR_FORBIDDEN = 8

Заборонений курсор. Повідомляє, що поточна дія заборонена (наприклад, при перетягування щось) або що контроль на позиції вимкнено.

CursorShape CURSOR_VSIZE = 9

Вертикальний кратний курс миші. Двоголова вертикальна стрілка. Розповідає користувачу можливість змінити вікно або панель вертикально.

CursorShape CURSOR_HSIZE = 10

Горизонтальний розмір мишки курсор. Двоголова горизонтальна стрілка. Розповідає користувачу можливість змінити вікно або панель горизонтально.

CursorShape CURSOR_BDIAGSIZE = 11

Вікно змініть курсор мишки. Екскурсор - двоголова стрілка, яка йде знизу зліва на верхню праву. Розповідає користувачу можливість змінити вікно або панель як горизонтально, так і вертикально.

CursorShape CURSOR_FDIAGSIZE = 12

Вікно змініть курсор мишки. Екскурсор - двоголова стрілка, яка йде з верхньої частини, зліва на низ, протилежна CURSOR_BDIAGSIZE. Розповідає користувачу можливість змінити вікно або панель як горизонтально, так і вертикально.

CursorShape CURSOR_MOVE = 13

Перемістити курсор. Повідомляє, що щось можна перенести.

CursorShape CURSOR_VSPLIT = 14

Вертикальний спліт курсор миші. На Windows, це так само, як CURSOR_VSIZE.

CursorShape CURSOR_HSPLIT = 15

Горизонтальний курсор мишки. На Windows, це те ж саме, як CURSOR_HSIZE.

CursorShape CURSOR_HELP = 16

Довідка курсора. Зазвичай знак питання.


Описи властивостей

bool emulate_mouse_from_touch 🔗

  • void set_emulate_mouse_from_touch(value: bool)

  • bool is_emulating_mouse_from_touch()

Якщо true, надсилайте події введення мишки при натисканні або закручуванні на сенсорному екрані. Дивись також ProjectSettings.input_devices/pointing/emulate_mouse_from_touch.


bool emulate_touch_from_mouse 🔗

  • void set_emulate_touch_from_mouse(value: bool)

  • bool is_emulating_touch_from_mouse()

Якщо true, надсилайте сенсорні вхідні події при натисканні або перетягування миші. Дивись також ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.


bool ignore_joypad_on_unfocused_application 🔗

  • void set_ignore_joypad_on_unfocused_application(value: bool)

  • bool is_ignoring_joypad_on_unfocused_application()

Якщо true, введення з джойстика (включно з датчиками руху) та зміни підсвічування світлодіодів ігноруватимуться, а вібрація джойстика припинятиметься, коли програма не перебуває у фокусі.


MouseMode mouse_mode 🔗

Керує режимом миші.


bool use_accumulated_input 🔗

  • void set_use_accumulated_input(value: bool)

  • bool is_using_accumulated_input()

Якщо true, скупчуються аналогічні вхідні події, надіслані операційною системою. Коли ввімкнено накопичення, всі вхідні події, що створюються під час рами, будуть об'єднані і введені при виконанні рами. Таким чином, це обмежує кількість вхідних методових дзвінків за секунду до рендерингу FPS.

Скупчення введення може бути вимкнено, щоб отримати трохи більш точний/реактивний вхід за вартістю збільшення використання процесора. У додатках, де потрібно малювати вільні лінії, вводне накопичення повинно бути відключено, поки користувач є кресленням лінії, щоб отримати результати, які уважно слідують фактичному вводі.

Note: Скупчення входу enabled за замовчуванням.


Описи методів

void action_press(action: StringName, strength: float = 1.0) 🔗

Це імітує пресування зазначеної дії.

Міцність може бути використана для небололевих дій, вона коливається між 0 і 1, що представляє інтенсивність даної дії.

Примітка: Цей метод не викликає ніяких Node._input() дзвінків. Призначений для використання _action_pressed() і _action_just_pressed(). Якщо ви хочете імітувати _input, скористайтеся parse_input_event() замість.


void action_release(action: StringName) 🔗

Якщо зазначена дія вже пресована, це випустить її.


void add_joy_mapping(mapping: String, update_existing: bool = false) 🔗

Додавання нового запису картування (в форматі SDL2) до бази даних картування. Додатково оновлення вже підключених пристроїв.


void clear_joy_motion_sensors_calibration(device: int) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Очищає інформацію про калібрування датчиків руху вказаного джойстика, якщо такі є і якщо вони були відкалібровані.

Дивіться start_joy_motion_sensors_calibration(), щоб ознайомитися з прикладом використання датчиків руху джойстика та їх калібрування у ваших іграх.

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


void flush_buffered_events() 🔗

Відправляє всі вхідні події, які знаходяться в поточному буфері до ігрової петлі. Ці події можуть бути відправлені в результаті накопичення вводу (use_accumulated_input) або поглинання вводу (ProjectSettings.input_devices/buffering/agile_event_flushing).

Двигун вже зробить це на ключових точках виконання (не рідше одного разу на кадр). Тим не менш, це може бути корисним у розширених випадках, коли ви хочете точний контроль над термінами обробки подій.


Vector3 get_accelerometer() const 🔗

Повертає прискорення в м/с² датчика акселерометра пристрою, якщо він є. В іншому випадку метод повертає Vector3.ZERO.

Зауважте, що цей метод повертає порожній Vector3 під час запуску з редактора, навіть якщо ваш пристрій має акселерометр. Ви повинні експортувати свій проект на підтримуваний пристрій, щоб зчитувати значення з акселерометра.

Примітка. Цей метод працює лише на Android та iOS. На інших платформах він завжди повертає Vector3.ZERO.

Примітка. Для Android потрібно ввімкнути ProjectSettings.input_devices/sensors/enable_accelerometer.


float get_action_raw_strength(action: StringName, exact_match: bool = false) const 🔗

Повертає значення між 0 і 1, що представляє собою сиру інтенсивність даної дії, ігноруючи химерну зону дії. У більшості випадків слід використовувати get_action_strength().

Якщо точний_match є false, він ігнорує додаткові модифікатори введення для InputEventKey і InputEventMouseButton події, і напрямок для InputEventJoypadMotion події.


float get_action_strength(action: StringName, exact_match: bool = false) const 🔗

Повертає значення 0 і 1, що представляє інтенсивність даної дії. У радіпаді, наприклад, далі від осі (алогові палички або L2, R2 тригери) з мертвої зони, чим ближче значення буде до 1. Якщо дія малюється на контроль, який не має осі, такі як клавіатура, значення повертається буде 0 або 1.

Якщо exact_match є false, він ігнорує додаткові модифікатори введення для InputEventKey і InputEventMouseButton події, і напрямок для InputEventJoypadMotion події.


float get_axis(negative_action: StringName, positive_action: StringName) const 🔗

Отримати вхід осі, вказавши два дії, один негативний і один позитивний.

Це швидке написання `` Input.get_action_strength("positive_action") - Input.get_action_strength("негатив_action")``.


Array[int] get_connected_joypads() 🔗

Повертає масив Array, що містить ідентифікатори всіх підключених на даний момент джойпадів.

Примітка: Не можна гарантувати, що порядок підключених джойпадів залишиться незмінним після перезапуску проєкту та/або редактора, оскільки Godot не зберігає порядок підключення джойпадів. Джойпади реєструються в тому порядку, в якому їх виявляє Godot.


CursorShape get_current_cursor_shape() const 🔗

Повертає поточну призначену форму курсора.


Vector3 get_gravity() const 🔗

Повертає силу тяжіння в м/с² датчика акселерометра пристрою, якщо він є. В іншому випадку метод повертає Vector3.ZERO.

Примітка. Цей метод працює лише на Android та iOS. На інших платформах він завжди повертає Vector3.ZERO.

Примітка. Для Android потрібно ввімкнути ProjectSettings.input_devices/sensors/enable_gravity.


Vector3 get_gyroscope() const 🔗

Повертає швидкість обертання в рад/с навколо осей X, Y і Z пристрою датчика гіроскопа, якщо він є. В іншому випадку метод повертає Vector3.ZERO.

Примітка. Цей метод працює лише на Android та iOS. На інших платформах він завжди повертає Vector3.ZERO.

Примітка. Для Android потрібно ввімкнути ProjectSettings.input_devices/sensors/enable_gyroscope.


Vector3 get_joy_accelerometer(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає прискорення, включаючи силу тяжіння, у м/с² датчика прискорення джойстика, якщо джойстик має такий датчик і він наразі увімкнений. В іншому випадку метод повертає Vector3.ZERO. Див. також get_joy_gravity() та set_joy_motion_sensors_enabled().

Для джойстика, який тримають перед собою, осі, що повертаються, визначаються так:

+X ... -X: ліворуч ... праворуч;

+Y ... -Y: знизу ... зверху;

+Z ... -Z: далі ... ближче.

Значення гравітації вимірюється як вектор довжиною 9,8 від центру Землі, що є від’ємним значенням Y.

Примітка: Ця функція підтримується лише в Windows, Linux та macOS. В iOS зчитування даних з акселерометра джойстика не підтримується через обмеження ОС.


float get_joy_axis(device: int, axis: JoyAxis) const 🔗

Повертає поточне значення осі джойстика за індексом axis.


Vector3 get_joy_gravity(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає значення прискорення у м/с² з датчика прискорення джойстика, якщо джойстик має такий датчик і він у даний момент увімкнений. В іншому випадку метод повертає Vector3.ZERO. Див. також get_joy_accelerometer() та set_joy_motion_sensors_enabled().

Для джойстика, який тримають перед собою, осі, що повертаються, визначаються так:

+X ... -X: ліворуч ... праворуч;

+Y ... -Y: знизу ... зверху;

+Z ... -Z: далі ... ближче.

Значення гравітації вимірюється як вектор довжиною 9,8 від центру Землі, що є від’ємним значенням Y.

Примітка: Ця функція підтримується лише в Windows, Linux та macOS. В iOS зчитування даних з акселерометра джойстика не підтримується через обмеження ОС.


String get_joy_guid(device: int) const 🔗

Повертає GUID пристрою, сумісний із SDL, на платформах, що використовують перепризначення кнопок геймпада, наприклад 030000004c050000c405000000010000. Якщо GUID не знайдено, повертається порожній рядок. Godot використовує внутрішні перепризначення SDL, доповнені перепризначеннями, наданими спільнотою, для визначення імен геймпадів та їх перепризначень на основі цього GUID.

У Windows усі GUID джойпадів XInput будуть замінені Godot на __XINPUT_DEVICE__, оскільки їхні перепризначення є однаковими.


Vector3 get_joy_gyroscope(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає швидкість обертання в рад/с навколо осей X, Y та Z гіроскопічного датчика джойстика, якщо джойстик має такий датчик і він наразі увімкнений. В іншому випадку метод повертає Vector3.ZERO. Див. також set_joy_motion_sensors_enabled().

Обертання вважається позитивним у напрямку проти годинникової стрілки.

Для джойстика, який тримають перед собою, осі визначаються наступним чином:

X: кутова швидкість навколо осі X (нахил);

Y: кутова швидкість навколо осі Y (відхилення);

Z: кутова швидкість навколо осі Z (крен).

Дивіться start_joy_motion_sensors_calibration() для прикладу того, як використовувати гіроскоп джойстика та калібрування гіроскопа у ваших іграх.

Примітка: Ця функція підтримується лише на Windows, Linux, macOS та iOS.


Dictionary get_joy_info(device: int) const 🔗

Повертає словник із додатковою інформацією про пристрій, що залежить від платформи, наприклад, вихідну назву геймпада з ОС або індекс Steam Input.

У Windows, Linux, macOS та iOS словник містить такі поля:

raw_name: Назва контролера, як вона була отримана з ОС, до перейменування базою даних контролерів.

vendor_id: Ідентифікатор виробника USB пристрою.

product_id: Ідентифікатор продукту USB пристрою.

serial_number: Серійний номер пристрою. Цей ключ буде відсутній, якщо серійний номер недоступний.

Словник також може містити такі поля для окремих платформ:

steam_input_index: Індекс геймпада Steam Input (лише для Windows, Linux та macOS). Якщо пристрій не є пристроєм Steam Input, цей ключ буде відсутній.

xinput_index: Індекс контролера в системі XInput (лише для Windows). Цей ключ не буде присутній для пристроїв, що не підтримуються XInput.

Примітка: Повернутий словник завжди порожній на Android та у веб-версії.


Dictionary get_joy_motion_sensors_calibration(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає інформацію про калібрування датчиків руху вказаного джойстика у вигляді Dictionary, якщо такі датчики є і якщо вони були відкалібровані; в іншому випадку повертає порожній Dictionary.

Словник містить такі поля:

gyroscope_offset: середнє відхилення значень гіроскопа від Vector2.ZERO у рад/с.

Дивіться start_joy_motion_sensors_calibration() для прикладу використання датчиків руху джойстика та калібрування у ваших іграх.

Примітка: Ця функція підтримується лише на Windows, Linux, macOS та iOS.


float get_joy_motion_sensors_rate(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає частоту датчиків руху джойстика в Гц, якщо джойстик оснащений датчиками руху і вони наразі увімкнені. Див. також set_joy_motion_sensors_enabled().

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


String get_joy_name(device: int) 🔗

Повертає ім'я джойстику в зазначеному індексі пристрою, наприклад PS4 контролер. Godot використовує SDL2 бази даних ігрових контролерів для визначення назв геймпада.


float get_joy_vibration_duration(device: int) 🔗

Повертає тривалість поточного ефекту вібрації у секундах.

Примітка: Цей метод повертає те саме значення, яке було передано методу start_joy_vibration(), і це значення не змінюється після закінчення вібрації джойстика; воно скидається лише після виклику методу stop_joy_vibration().

Якщо ви хочете перевірити, чи джойпад все ще вібрує, скористайтеся is_joy_vibrating().


float get_joy_vibration_remaining_duration(device: int) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає час, що залишився до закінчення поточного ефекту вібрації, у секундах.


Vector2 get_joy_vibration_strength(device: int) 🔗

Повертає інтенсивність вібрації джойстика: x — інтенсивність слабкого двигуна, а y — інтенсивність сильного двигуна.

** Примітка:** Цей метод повертає ті самі значення, що були передані до start_joy_vibration(), і ці значення не змінюються, коли вібрація джойстика закінчується, вони скидаються лише після виклику stop_joy_vibration().

Якщо ви хочете перевірити, чи джойстик все ще вібрує, скористайтеся is_joy_vibrating() замість цього.


Vector2 get_last_mouse_screen_velocity() 🔗

Повернення останньої швидкості мишки в координатах екрана. Для забезпечення точної і безжорсткої швидкості миша обчислюється тільки кожен 0.1s. Таким чином, швидкість мишки відставить рухи миші.


Vector2 get_last_mouse_velocity() 🔗

Повернення останньої швидкості мишки. Для забезпечення точної і безжорсткої швидкості миша обчислюється тільки кожен 0.1s. Таким чином, швидкість мишки відставить рухи миші.


Vector3 get_magnetometer() const 🔗

Повертає напруженість магнітного поля в мікротеслах для всіх осей датчика магнітометра пристрою, якщо він є. В іншому випадку метод повертає Vector3.ZERO.

Примітка. Цей метод працює лише на Android та iOS. На інших платформах він завжди повертає Vector3.ZERO.

Примітка. Для Android потрібно ввімкнути ProjectSettings.input_devices/sensors/enable_magnetometer.


BitField[MouseButtonMask] get_mouse_button_mask() const 🔗

Повертаємо кнопки миші як трохи. Якщо кілька кліків мишки натискаються одночасно, укуси додаються разом. Equivalent to DisplayServer.mouse_get_button_state().


Vector2 get_vector(negative_x: StringName, positive_x: StringName, negative_y: StringName, positive_y: StringName, deadzone: float = -1.0) const 🔗

Прискорює вхідний вектор, вказавши чотири дії для позитиву і негативних X і Y-акс.

Цей метод корисний при отриманні вектора вводу, таких як з джойстику, спрямована накладка, стріли або WASD. Вектор має свою довжину, обмежену 1 і має круговий дільник, який корисний для використання векторного введення в рух.

За промовчанням, фрагмент автоматично обчислюється з середньої дії францонів. Однак, ви можете перенаречени мертвогозону, щоб бути, що ви хочете (на діапазоні 0 до 1).


bool has_joy_light(device: int) const 🔗

Повертає true, якщо джойпад має світлодіод, який може змінювати колір та/або яскравість. Див. також set_joy_light().

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


bool has_joy_motion_sensors(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає true, якщо джойпад оснащений датчиками руху (акселерометром і гіроскопом).

Примітка: У системі iOS зчитування даних з акселерометра джойпада не підтримується через обмеження ОС.

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


bool has_joy_vibration(device: int) const 🔗

Повертає true, якщо джойпад підтримує вібрацію. Див. також start_joy_vibration().

Примітка: У macOS вібрація підтримується лише в macOS 11 та пізніших версіях. При підключенні через USB вібрація підтримується лише для контролерів провідних виробників (за винятком контролерів Xbox One та Xbox Series X/S) через обмеження macOS.


bool is_action_just_pressed(action: StringName, exact_match: bool = false) const 🔗

Повертає true, коли користувач почав натискати подію дії в поточному кадрі або фізичному тику. Повертає true тільки в кадрі або тику, в якому користувач натиснув кнопку.

Це корисно для коду, який потрібно виконати тільки один раз при натисканні дії, а не в кожному кадрі, поки вона натиснута.

Якщо exact_match дорівнює false, ігноруються додаткові модифікатори вводу для подій InputEventKey та InputEventMouseButton, а також напрямок для подій InputEventJoypadMotion.

Примітка: Повернення true не означає, що дія все ще натиснута. Дію можна швидко натиснути і відпустити, і true все одно буде повернуто, щоб не пропустити введення.

Примітка: Через ефект «привидів» клавіатури is_action_just_pressed() може повернути false, навіть якщо одна з клавіш дії натиснута. Дивіться Приклади введення в документації для отримання додаткової інформації.

Примітка: Під час обробки введення (наприклад, Node._input()), використовуйте InputEvent.is_action_pressed() для запиту стану дії поточної події. Див. також is_action_just_pressed_by_event().


bool is_action_just_pressed_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const 🔗

Повертає true, коли користувач почав натискати подію дії в поточному кадрі або фізичному тику, і першою подією, яка викликала натискання дії в поточному кадрі/фізичному тику, була event. Вона поверне true тільки в кадрі або тику, в якому користувач натиснув кнопку.

Це корисно для коду, який потрібно виконати тільки один раз, коли натискається дія, і дія обробляється під час обробки вводу (наприклад, Node._input()).

Якщо exact_match дорівнює false, він ігнорує додаткові модифікатори введення для подій InputEventKey та InputEventMouseButton, а також напрямок для подій InputEventJoypadMotion.

Примітка: Повернення true не означає, що дія все ще натиснута. Дію можна швидко натиснути і відпустити, і true все одно буде повернуто, щоб не пропустити введення.

Примітка: Через ефект «привидів» клавіатури is_action_just_pressed() може повернути false, навіть якщо одна з клавіш дії натиснута. Дивіться Приклади введення в документації для отримання додаткової інформації.


bool is_action_just_released(action: StringName, exact_match: bool = false) const 🔗

Повертає true, коли користувач припиняє натискати подію дії в поточному кадрі або фізичному тику. Воно повертає true тільки в кадрі або тику, коли користувач відпускає кнопку.

Примітка: Повернення true не означає, що дія все ще не натиснута. Дія може бути швидко відпущена і натиснута знову, і true все одно буде повернуто, щоб не пропустити введення.

Якщо exact_match дорівнює false, ігноруються додаткові модифікатори введення для подій InputEventKey і InputEventMouseButton, а також напрямок для подій InputEventJoypadMotion.

Примітка: Під час обробки введення (наприклад, Node._input()), використовуйте InputEvent.is_action_released() для запиту стану дії поточної події. Див. також is_action_just_released_by_event().


bool is_action_just_released_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const 🔗

Повертає true, коли користувач припиняє натискати подію дії в поточному кадрі або фізичному тику, а першою подією, яка викликала звільнення дії в поточному кадрі/фізичному тику, була event. Вона повертатиме true тільки в кадрі або тику, в якому користувач відпускає кнопку.

Це корисно, коли дія обробляється під час обробки вводу (наприклад, Node._input()).

Примітка: Повернення true не означає, що дія все ще не натиснута. Дію можна швидко відпустити і натиснути знову, і true все одно буде повернуто, щоб не пропустити ввід.

Якщо exact_match має значення false, ігноруються додаткові модифікатори введення для подій InputEventKey та InputEventMouseButton, а також напрямок для подій InputEventJoypadMotion.


bool is_action_pressed(action: StringName, exact_match: bool = false) const 🔗

Повертаємо true, якщо ви натискаємо акцію.

Якщо exact_match є false, він ігнорує додаткові модифікатори введення для InputEventKey і InputEventMouseButton події, і напрямок для InputEventJoypadMotion події.

Примітка: У зв'язку з привидами клавіатури, _action_pressed() може повернутися false навіть якщо один з ключів дії натискається. Див. Налаштування прикладів в документації для отримання додаткової інформації.


bool is_anything_pressed() const 🔗

Повертаємо true, якщо будь-яка дія, ключ, кнопка Hotpad або кнопка миша натискається. Це також повернеться true, якщо будь-яка дія змоделюється через код, зателефонувавши action_press().


bool is_joy_button_pressed(device: int, button: JoyButton) const 🔗

Повертає true, якщо натиснуто кнопку джойстика з індексом button.

Примітка: Якщо потрібно перевірити, чи кнопка джойстика щойно була натиснута, скористайтеся системою дій введення Godot за допомогою методу is_action_just_pressed() або замість цього використовуйте метод Node._input() таким чином:

func _input(event):
    if event is InputEventJoypadButton and event.is_pressed() and event.button_index == JOY_BUTTON_A:
        pass # Your code here.

bool is_joy_known(device: int) 🔗

Повертає true, якщо система знає зазначений пристрій. Це означає, що він встановлює всі кнопки і осі індекси. Невідомі джойстики не чекають, щоб відповідати цим константам, але ви ще можете отримати події з них.


bool is_joy_motion_sensors_calibrated(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає true, якщо датчики руху джойстика відкалібровані.

Дивіться start_joy_motion_sensors_calibration(), щоб ознайомитися з прикладом використання датчиків руху джойстика та їх калібрування у ваших іграх.

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


bool is_joy_motion_sensors_calibrating(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає true, якщо датчики руху джойстика наразі калібруються.

Дивіться start_joy_motion_sensors_calibration(), щоб ознайомитися з прикладом використання датчиків руху джойстика та їх калібрування у ваших іграх.

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


bool is_joy_motion_sensors_enabled(device: int) const 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає true, якщо запитуваний джойпад має датчики руху (акселерометр і гіроскоп) і вони наразі увімкнені. Див. також set_joy_motion_sensors_enabled() та метод has_joy_motion_sensors.

Дивіться start_joy_motion_sensors_calibration() для прикладу того, як використовувати датчики руху джойстика та калібрування у ваших іграх.

Примітка: Ця функція підтримується лише на Windows, Linux, macOS та iOS.


bool is_joy_vibrating(device: int) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Повертає true, якщо джойстик продовжує вібрувати після виклику start_joy_vibration().

На відміну від get_joy_vibration_strength() та get_joy_vibration_duration(), цей метод повертає false, щойно вібрація джойстика припинилася.


bool is_key_label_pressed(keycode: Key) const 🔗

Повертає true, якщо ви натискаєте клавішу з надрукованим на ній keycode. Ви можете передати константу Key або будь-який код символу Unicode.

Примітка: Якщо ви хочете перевірити, чи клавіша щойно була натиснута, використовуючи її мітку, скористайтеся системою дій введення Godot із is_action_just_pressed() або замість цього використовуйте метод Node._input() таким чином:

func _input(event):
    if event is InputEventKey and not event.is_echo() and event.is_pressed() and event.key_label == KEY_SPACE:
        pass # Your code here.

bool is_key_pressed(keycode: Key) const 🔗

Повертає true, якщо ви натискаєте латинську клавішу в поточній розкладці клавіатури. Можна передати константу Key.

Використання is_key_pressed() замість is_physical_key_pressed() рекомендується лише в неігрових програмах. Це гарантує, що комбінації клавіш працюватимуть як очікується залежно від розкладки клавіатури користувача, оскільки в неігрових програмах комбінації клавіш зазвичай залежать від розкладки клавіатури. Якщо ви сумніваєтеся, використовуйте is_physical_key_pressed().

Примітка: Через ефект «привидів» клавіатури is_key_pressed() може повернути false, навіть якщо одна з клавіш дії натиснута. Дивіться ` Приклади введення <../tutorials/inputs/input_examples.html#keyboard-events>`__ у документації.

Примітка: Якщо ви хочете перевірити, чи клавіша щойно була натиснута, використовуючи її код, скористайтеся системою дій введення Godot із is_action_just_pressed() або замість цього використовуйте метод Node._input() таким чином:

func _input(event):
    if event is InputEventKey and not event.is_echo() and event.is_pressed() and event.keycode == KEY_SPACE:
        pass # Your code here.

bool is_mouse_button_pressed(button: MouseButton) const 🔗

Повертає true, якщо натиснуто кнопку миші, вказану за допомогою MouseButton.

Примітка: Якщо потрібно перевірити, чи щойно натиснули кнопку миші, скористайтеся системою дій введення Godot за допомогою методу is_action_just_pressed() або замість цього використовуйте метод Node._input() таким чином:

func _input(event):
    if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_LEFT:
        pass # Your code here.

bool is_physical_key_pressed(keycode: Key) const 🔗

Повертає true, якщо ви натискаєте клавішу у фізичному місці на 101/102-клавішній клавіатурі US QWERTY. Можна передати константу Key.

Для дій у грі рекомендується використовувати is_physical_key_pressed() замість is_key_pressed(), оскільки це забезпечить роботу розкладок W/A/S/D незалежно від розкладки клавіатури користувача. is_physical_key_pressed() також гарантує, що цифрові клавіші верхнього ряду працюватимуть на будь-якій розкладці клавіатури. Якщо ви сумніваєтеся, використовуйте is_physical_key_pressed().

Примітка: Через ефект «привидів» клавіатури is_physical_key_pressed() може повернути false, навіть якщо одна з клавіш дії натиснута. Дивіться Приклади введення у документації для отримання додаткової інформації.

Примітка: Якщо ви хочете перевірити, чи клавіша щойно була натиснута, використовуючи її фізичний код, скористайтеся системою дій введення Godot із is_action_just_pressed() або замість цього використовуйте метод Node._input() таким чином:

func _input(event):
    if event is InputEventKey and not event.is_echo() and event.is_pressed() and event.physical_keycode == KEY_SPACE:
        pass # Your code here.

void parse_input_event(event: InputEvent) 🔗

Подає InputEvent у гру. Може використовуватися для штучного запуску подій введення з коду. Також генерує виклики Node._input().

var cancel_event = InputEventAction.new()
cancel_event.action = "ui_cancel"
cancel_event.pressed = правда
Input.parse_input_event(cancel_event)

Примітка: виклик цієї функції не впливає на операційну систему. Так, наприклад, надсилання InputEventMouseMotion не перемістить курсор миші ОС у вказану позицію (натомість використовуйте warp_mouse()), а надсилання Alt/Cmd + Tab як InputEventKey не призведе до перемикання між активними вікнами.


void remove_joy_mapping(guid: String) 🔗

Видаляє всі зіставлення з внутрішньої бази даних, які відповідають заданому GUID. Усі наразі підключені джойстики, які використовують цей GUID, стануть невідповідними.

На Android Godot відображатиме внутрішнє резервне відображення.


void set_accelerometer(value: Vector3) 🔗

Налаштовує коефіцієнт прискорення акселерометра. Може використовуватися для відбілювання на пристроях без апаратного датчика, наприклад, в редакторі на ПК.

Примітка: Це значення може бути негайно переписано значенням датчика обладнання на Android та iOS.


void set_custom_mouse_cursor(image: Resource, shape: CursorShape = 0, hotspot: Vector2 = Vector2(0, 0)) 🔗

Встановлює власне зображення курсора миші, яке відображається лише у вікні гри, для заданої миші shape. Також можна вказати гарячу точку. Передавання null до параметра image скидає значення до системного курсора.

image може бути або Texture2D, або Image, а його розмір має бути меншим або рівним 256×256. Щоб уникнути проблем із рендерингом, рекомендуються розміри менші або рівні 128×128.

hotspot має бути в межах розміру image.

Примітка: AnimatedTexture не підтримуються як власні курсори миші. Якщо використовується AnimatedTexture, буде відображено лише перший кадр.

Примітка: Рекомендуються режими стиснення Lossless, Lossy або Uncompressed. Режим стиснення відеопам’яті можна використовувати, але він буде розпакований на процесорі, що означає сповільнення часу завантаження та відсутність збереження пам’яті порівняно з режимами без втрат.

Примітка: На веб-платформі максимально дозволений розмір зображення курсора становить 128×128. Зображення курсора розміром більше 32×32 також відображатимуться лише в тому випадку, якщо зображення курсора миші повністю розташоване на сторінці з міркувань безпеки.


void set_default_cursor_shape(shape: CursorShape = 0) 🔗

Налаштовує форму курсора за замовчуванням, щоб використовуватися у розділі замість CURSOR_ARROW.

Примітка: Якщо ви хочете змінити форму курсора за замовчуванням для вузлів Control, скористайтеся email protected.

Примітка: Цей метод генерує InputEventMouseMouseMouseMouseMotion для оновлення курсора відразу.


void set_gravity(value: Vector3) 🔗

Налаштовує значення ваги акселерометра. Може використовуватися для відбілювання на пристроях без апаратного датчика, наприклад, в редакторі на ПК.

Примітка: Дане значення може бути відразу переписано значення датчика обладнання на Android та iOS.


void set_gyroscope(value: Vector3) 🔗

Налаштовує значення швидкості обертання гіроскопа. Може використовуватися для відбілювання на пристроях без апаратного датчика, наприклад, в редакторі на ПК.

Примітка: Це значення може бути негайно переписано значенням датчика обладнання на Android та iOS.


void set_joy_light(device: int, color: Color) 🔗

Встановлює світлодіодний індикатор джойстика (якщо він є) у вказаний колір. Див. також has_joy_light().

Примітка: Немає можливості отримати колір індикатора з джойстика. Якщо вам потрібно знати призначений колір, збережіть його окремо.

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


void set_joy_motion_sensors_calibration(device: int, calibration_info: Dictionary) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Встановлює інформацію про калібрування вказаного джойстика. Див. також get_joy_motion_sensors_calibration().

Приклад використання датчиків руху джойстика та калібрування у ваших іграх див. у start_joy_motion_sensors_calibration().

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


void set_joy_motion_sensors_enabled(device: int, enable: bool) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Увімкнення або вимкнення датчиків руху (акселерометра та гіроскопа), якщо вони є, на вказаному джойпаді.

Дивіться start_joy_motion_sensors_calibration(), щоб ознайомитися з прикладом використання датчиків руху джойпада та їх калібрування у ваших іграх.

Рекомендується вимикати датчики руху, коли вони більше не використовуються, оскільки в іншому випадку це може прискорити розряд батареї контролера.

Примітка: Ця функція підтримується лише в Windows, Linux, macOS та iOS.


void set_magnetometer(value: Vector3) 🔗

Налаштовує значення магнітного поля датчика магнітометра. Може використовуватися для відбілювання на пристроях без апаратного датчика, наприклад, в редакторі на ПК.

Примітка: Це значення може бути негайно переписано значенням датчика обладнання на Android та iOS.


bool should_ignore_device(vendor_id: int, product_id: int) const 🔗

Запитання про те, чи слід ігнорувати вхідний пристрій або ні. Пристрої можна ігнорувати, встановлюючи змінну середовища SDL_GAMECONTROLLER_IGNORE_DEVICES. Читати ` Документація SDL <https://wiki.libsdl.org/SDL2>`__ для отримання додаткової інформації.

Примітка: Деякі 3rd party інструменти можуть сприяти списку ігноруваних пристроїв. Наприклад, SteamInput створює віртуальні пристрої з фізичних пристроїв для цілей переадресації. Щоб уникнути обробки одного пристрою введення двічі, оригінальний пристрій додається до списку ігнорування.


void start_joy_motion_sensors_calibration(device: int) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Запускає процес калібрування гіроскопа вказаного джойстика, якщо він ним оснащений.

Після правильної калібрування гіроскопа джойстика (наприклад, коли джойстик лежить нерухомо на столі без поворотів) метод get_joy_gyroscope повертатиме значення, близькі до або рівні Vector3.ZERO, якщо джойстик не обертається.

Ось приклад того, як використовувати гіроскоп джойпада та його калібрування у ваших іграх:

const GYRO_SENSITIVITY = 10.0

func _ready():
 # У цьому прикладі ми використовуємо лише перший підключений джойпад (id 0).
    if 0 not in Input.get_connected_joypads():
 return

 if not Input.has_joy_motion_sensors(0):
 return

 # Ми повинні увімкнути датчики руху перед їх використанням.
 Input.set_joy_motion_sensors_enabled(0, true)

    # (Повідомте користувачів, що їм потрібно покласти джойпади на рівну поверхню та дочекатися підтвердження.)

 # Запустіть процес калібрування.
 calibrate_motion()

func _process(delta):
 # Переміщайте об’єкт лише тоді, коли датчики руху джойпада відкалібровані.
 if Input.is_joy_motion_sensors_calibrated(0):
 move_object (delta)

func calibrate_motion():
 Input.start_joy_motion_sensors_calibration(0)

 # Зачекайте деякий час.
 await get_tree().create_timer(1.0).timeout

 Input.stop_joy_motion_sensors_calibration(0)
 # Джойпад тепер відкалібрований.

func move_object(delta):
 var node: Node3D = ... # Вставте тут свій вузол.

 var gyro := Input.get_joy_gyroscope(0)
 node.rotation.x -= -gyro.y * GYRO_SENSITIVITY * delta # Тут використовується обертання навколо осі Y (рискання).
    node.rotation.y += -gyro.x * GYRO_SENSITIVITY * delta # Тут використовується обертання навколо осі X (нахил).

Примітка: Датчик акселерометра зазвичай не потребує калібрування.

Примітка: Ця функція підтримується лише в Windows, Linux, macOS та iOS.


void start_joy_vibration(device: int, weak_magnitude: float, strong_magnitude: float, duration: float = 0) 🔗

Починає вібрувати джойпад. Див. також has_joy_vibration() та is_joy_vibrating().

Джойпади зазвичай оснащені двома вібраційними двигунами: сильним і слабким.

weak_magnitude — це сила слабкого двигуна (від 0.0 до 1.0).

strong_magnitude — це сила сильного мотора (від 0.0 до 1.0).

duration — це тривалість ефекту в секундах (тривалість 0.0 спробує відтворити вібрацію якомога довше, що становить приблизно 65 секунд).

Вібрацію можна зупинити достроково, викликавши stop_joy_vibration().

Див. також get_joy_vibration_strength() та get_joy_vibration_duration().

Примітка: Для macOS вібрація підтримується лише в macOS 11 та пізніших версіях. При підключенні через USB вібрація підтримується лише для контролерів основних брендів (крім контролерів Xbox One та Xbox Series X/S) через обмеження macOS.


void stop_joy_motion_sensors_calibration(device: int) 🔗

Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.

Припиняє процес калібрування датчиків руху вказаного джойстика.

Дивіться start_joy_motion_sensors_calibration(), щоб ознайомитися з прикладом використання датчиків руху джойстика та їх калібрування у ваших іграх.

Примітка: Ця функція підтримується лише в системах Windows, Linux, macOS та iOS.


void stop_joy_vibration(device: int) 🔗

Сприяє вібраційній раді, починаючи з _joy_vibration().


void vibrate_handheld(duration_ms: int = 500, amplitude: float = -1.0) 🔗

Викликає вібрацію мобільного пристрою протягом вказаного часу в мілісекундах.

amplitude — це інтенсивність вібрації, що задається значенням від 0.0 до 1.0. Якщо встановлено значення -1.0, використовується стандартна інтенсивність вібрації пристрою.

Примітка: Цей метод реалізовано на Android, iOS та у веб-версії. На інших платформах він не діє.

Примітка: Для Android метод vibrate_handheld() вимагає увімкнення дозволу VIBRATE у налаштуваннях експорту. Інакше метод vibrate_handheld() не спрацює.

Примітка: Для iOS вказання тривалості підтримується лише в iOS 13 та пізніших версіях.

Примітка: Для веб-версії амплітуду змінити неможливо.

Примітка: Деякі веб-браузери, такі як Safari та Firefox для Android, не підтримують vibrate_handheld().

Примітка: Налаштування пристрою, такі як увімкнення/вимкнення вібрації, режим «не турбувати» або увімкнення/вимкнення конкретного тактильного відгуку, можуть перешкоджати ефектам vibrate_handheld().


void warp_mouse(position: Vector2) 🔗

Налаштовує позицію мишки до вказаного вектора, наданого в пікселях і відносно походження на верхньому лівому куті в даний час зосереджений вікно управління вікон.

Миша позиція затискається на межі роздільної здатності екрана або на межі ігрового вікна, якщо MouseMode встановлюється до MOUSE_MODE_CONFINED або MOUSE_MODE_CONFINED_HIDDEN.

Примітка: Warp_mouse() підтримується тільки на Windows, macOS і Linux. Не впливає на Android, iOS та Web.