Input

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

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

Опис

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

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

Посібники

Властивості

bool

emulate_mouse_from_touch

bool

emulate_touch_from_mouse

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

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

float

get_joy_axis(device: int, axis: JoyAxis) const

String

get_joy_guid(device: int) const

Dictionary

get_joy_info(device: int) const

String

get_joy_name(device: int)

float

get_joy_vibration_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

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_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_magnetometer(value: Vector3)

bool

should_ignore_device(vendor_id: int, product_id: int) const

void

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

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.


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 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, що містить ідентифікатори пристрою, які в даний час з'єднуються зджоли.


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.


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

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


String get_joy_guid(device: int) const 🔗

Повертає SDL2-сумісний пристрій Guid на платформах, які використовують відстеження GamePad, E.G. `` 030000004c050000c405000000010000 ``. Повертає порожню рядок, якщо вона не знайдена. Готе, що він використовує [url = https: //github.com/gabomdq/sdl_gamecontrollerdb] База даних ігрового контролера SDL2 [/uri], щоб визначити імена GamePad та відображення на основі цього GUID.

На Windows всі GoStoD Godot JodePad будуть перевизначені за допомогою [code] __ xinput_device __ [/code], тому що їх відображення однакові.


Dictionary get_joy_info(device: int) const 🔗

Повертає словник з додатковою інформацією про пристрій, специфічною для платформи, наприклад, сире ім'я геймпада з ОС або індекс Steam Input.

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

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

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

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

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

У Windows словник може мати додаткове поле:

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

Примітка: Повернутий словник завжди порожній на Android, iOS, visionOS та Web.


String get_joy_name(device: int) 🔗

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


float get_joy_vibration_duration(device: int) 🔗

Повертає тривалість поточної коливальної дії за секундами.


Vector2 get_joy_vibration_strength(device: int) 🔗

Повертає міцність радісної вібрації: x - сила слабкого мотора, і є міцністю міцного двигуна.


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 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.


bool is_joy_known(device: int) 🔗

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


bool is_key_label_pressed(keycode: Key) const 🔗

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


bool is_key_pressed(keycode: Key) const 🔗

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

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

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


bool is_mouse_button_pressed(button: MouseButton) const 🔗

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


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_phys_key_pressed() також гарантує, що верхній ряд ключів працює на будь-якому макеті клавіатури. У разі виникнення сумнівів, використання is_physical_key_pressed().

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


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_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_vibration(device: int, weak_magnitude: float, strong_magnitude: float, duration: float = 0) 🔗

Починає вібрувати гумку. Joypads, як правило, приходять з двома двигунами, міцними і слабкими. слабкий_magnitude - сила слабкого мотора (between 0 і 1) і strong_magnitude - сила сильного двигуна (between 0 і 1). тривалість пари – тривалість ефекту за секундами (тривалість 0 намагатиметься відтворити вібрацію невизначено). Вібрація може бути припинена на початку виклику зупинки_joy_vibration().

Примітка: Не кожен апарат сумісний з тривалими термінами дії, рекомендується перезапустити ефект, якщо він повинен грати протягом декількох секунд.

Примітка: Для macOS, вібрація підтримується тільки в macOS 11 і пізніше.


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 та Web. Не впливає на інші платформи.

Примітка: Для Андроїд, vibrate_handheld() вимагає можливості VIBRATE дозвіл на експорт. В іншому випадку, vibrate_handheld() не буде ефекту.

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

Примітка: Для Web, амплітуда не може бути змінена.

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


void warp_mouse(position: Vector2) 🔗

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

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

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