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 🔗

Подсказка для джойстика StyleBox.


StyleBox pressed_joystick 🔗

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


StyleBox pressed_tip 🔗

Tip joystick StyleBox when pressed.