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.

VirtualJoystick

Успадковує: Control < CanvasItem < Node < Object

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

Опис

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

Цей елемент управління може імітувати дії з переміщенням у певному напрямку (див. action_up, action_down, action_left та action_right), які активуються при переміщенні джойстика у відповідних напрямках.

Властивості

StringName

action_down

&"ui_down"

StringName

action_left

&"ui_left"

StringName

action_right

&"ui_right"

StringName

action_up

&"ui_up"

float

clampzone_ratio

1.0

float

deadzone_ratio

0.0

Vector2

initial_offset_ratio

Vector2(0.5, 0.5)

JoystickMode

joystick_mode

0

float

joystick_size

100.0

float

tip_size

50.0

VisibilityMode

visibility_mode

0

Властивості теми

StyleBox

normal_joystick

StyleBox

normal_tip

StyleBox

pressed_joystick

StyleBox

pressed_tip


Сигнали

flick_canceled() 🔗

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


flicked(input_vector: Vector2) 🔗

Видається, коли кінчик виходить за межі мертвої зони і джойстик відпускається. Параметр input_vector містить останній напрямок та силу введення перед відпусканням. Його значення знаходиться в діапазоні від 0.0 до 1.0.


pressed() 🔗

Звук відтворюється при натисканні джойстика.


released(input_vector: Vector2) 🔗

Видається при відпусканні джойстика. Параметр input_vector відображає кінцевий напрямок та силу введення, значення якого знаходиться в діапазоні від 0.0 до 1.0.


tapped() 🔗

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


Переліки

enum JoystickMode: 🔗

JoystickMode JOYSTICK_FIXED = 0

Джойстик не рухається.

JoystickMode JOYSTICK_DYNAMIC = 1

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

JoystickMode JOYSTICK_FOLLOWING = 2

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


enum VisibilityMode: 🔗

VisibilityMode VISIBILITY_ALWAYS = 0

Джойстик завжди залишається на екрані.

VisibilityMode VISIBILITY_WHEN_TOUCHED = 1

Джойстик стає видимим лише під час дотику.


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

StringName action_down = &"ui_down" 🔗

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


StringName action_left = &"ui_left" 🔗

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


StringName action_right = &"ui_right" 🔗

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


StringName action_up = &"ui_up" 🔗

Дія, яка має виконуватися при переміщенні джойстика вгору.


float clampzone_ratio = 1.0 🔗

  • void set_clampzone_ratio(value: float)

  • float get_clampzone_ratio()

Коефіцієнт, що застосовується до радіуса джойстика та визначає зону фіксації.

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

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

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


float deadzone_ratio = 0.0 🔗

  • void set_deadzone_ratio(value: float)

  • float get_deadzone_ratio()

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

Ця мертва зона застосовується перед запуском дій введення та впливає на вектор введення джойстика та всі пов’язані сигнали.

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

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


Vector2 initial_offset_ratio = Vector2(0.5, 0.5) 🔗

  • void set_initial_offset_ratio(value: Vector2)

  • Vector2 get_initial_offset_ratio()

Початкове положення джойстика як відношення до розміру елемента управління. (0, 0) відповідає верхньому лівому куту, а (1, 1) — нижньому правому.


JoystickMode joystick_mode = 0 🔗

Режим джойстика, який потрібно використовувати.


float joystick_size = 100.0 🔗

  • void set_joystick_size(value: float)

  • float get_joystick_size()

Розмір джойстика в пікселях.


float tip_size = 50.0 🔗

  • void set_tip_size(value: float)

  • float get_tip_size()

Розмір кінчика джойстика в пікселях.


VisibilityMode visibility_mode = 0 🔗

Режим відображення, який слід використовувати.


Описи тематичної нерухомості

StyleBox normal_joystick 🔗

Базовий джойстик StyleBox.


StyleBox normal_tip 🔗

Джойстик Tip StyleBox.


StyleBox pressed_joystick 🔗

Базовий джойстик StyleBox при натисканні.


StyleBox pressed_tip 🔗

Нахил джойстика StyleBox при натисканні.