TextureProgressBar

Наследует: Range < Control < CanvasItem < Node < Object

Текстурная полоса прогресса. Полезно для экранов загрузки и полосок жизни или выносливости.

Описание

TextureProgressBar работает как ProgressBar, но использует до 3 текстур вместо ресурса Godot Theme. Его можно использовать для создания горизонтальных, вертикальных и радиальных индикаторов прогресса.

Свойства

int

fill_mode

0

MouseFilter

mouse_filter

1 (overrides Control)

bool

nine_patch_stretch

false

Vector2

radial_center_offset

Vector2(0, 0)

float

radial_fill_degrees

360.0

float

radial_initial_angle

0.0

BitField[SizeFlags]

size_flags_vertical

1 (overrides Control)

float

step

1.0 (overrides Range)

int

stretch_margin_bottom

0

int

stretch_margin_left

0

int

stretch_margin_right

0

int

stretch_margin_top

0

Texture2D

texture_over

Texture2D

texture_progress

Vector2

texture_progress_offset

Vector2(0, 0)

Texture2D

texture_under

Color

tint_over

Color(1, 1, 1, 1)

Color

tint_progress

Color(1, 1, 1, 1)

Color

tint_under

Color(1, 1, 1, 1)

Методы

int

get_stretch_margin(margin: Side) const

void

set_stretch_margin(margin: Side, value: int)


Перечисления

enum FillMode: 🔗

FillMode FILL_LEFT_TO_RIGHT = 0

texture_progress заполняется слева направо.

FillMode FILL_RIGHT_TO_LEFT = 1

texture_progress заполняется справа налево.

FillMode FILL_TOP_TO_BOTTOM = 2

texture_progress заполняется сверху вниз.

FillMode FILL_BOTTOM_TO_TOP = 3

texture_progress заполняется снизу вверх.

FillMode FILL_CLOCKWISE = 4

Превращает узел в радиальный столбец. texture_progress заполняется по часовой стрелке. См. radia_center_offset, radia_initial_angle и radia_fill_degrees для управления способом заполнения столбца.

FillMode FILL_COUNTER_CLOCKWISE = 5

Превращает узел в радиальный столбец. texture_progress заполняется против часовой стрелки. См. radia_center_offset, radia_initial_angle и radia_fill_degrees для управления способом заполнения столбца.

FillMode FILL_BILINEAR_LEFT_AND_RIGHT = 6

texture_progress заполняется от центра, расширяясь как влево, так и вправо.

FillMode FILL_BILINEAR_TOP_AND_BOTTOM = 7

texture_progress заполняется от центра, расширяясь как вверх, так и вниз.

FillMode FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8

Превращает узел в радиальный столбец. texture_progress заполняется радиально от центра, расширяясь как по часовой стрелке, так и против часовой стрелки. См. radia_center_offset, radia_initial_angle и radia_fill_degrees для управления способом заполнения столбца.


Описания свойств

int fill_mode = 0 🔗

  • void set_fill_mode(value: int)

  • int get_fill_mode()

Направление заполнения. См. FillMode для возможных значений.


bool nine_patch_stretch = false 🔗

  • void set_nine_patch_stretch(value: bool)

  • bool get_nine_patch_stretch()

Если true, Godot обрабатывает текстуры полосы как в NinePatchRect. Используйте свойства stretch_margin_*, такие как stretch_margin_bottom, чтобы настроить сетку 3×3 девяти частей. При использовании радиального fill_mode эта настройка включит растяжение только для texture_progress, тогда как texture_under и texture_over будут обрабатываться как в NinePatchRect.


Vector2 radial_center_offset = Vector2(0, 0) 🔗

  • void set_radial_center_offset(value: Vector2)

  • Vector2 get_radial_center_offset()

Смещает texture_progress, если fill_modeFILL_CLOCKWISE, FILL_COUNTER_CLOCKWISE или FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE.

Примечание: Эффективный радиальный центр всегда остается в пределах texture_progress. Если вам нужно переместить его за пределы границ текстуры, измените texture_progress, чтобы он содержал дополнительное пустое пространство там, где это необходимо.


float radial_fill_degrees = 360.0 🔗

  • void set_fill_degrees(value: float)

  • float get_fill_degrees()

Верхний предел для заполнения texture_progress, если fill_modeFILL_CLOCKWISE, FILL_COUNTER_CLOCKWISE или FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE. Когда value узла равно его max_value, текстура заполняется до этого угла.

См. Range.value, Range.max_value.


float radial_initial_angle = 0.0 🔗

  • void set_radial_initial_angle(value: float)

  • float get_radial_initial_angle()

Начальный угол для заполнения texture_progress, если fill_mode равен FILL_CLOCKWISE, FILL_COUNTER_CLOCKWISE или FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE. Когда value узла равно его min_value, текстура вообще не отображается. Когда value увеличивается, текстура заполняется и стремится к radial_fill_degrees.

Примечание: radial_initial_angle заключен между 0 и 360 градусами (включительно).


int stretch_margin_bottom = 0 🔗

  • void set_stretch_margin(margin: Side, value: int)

  • int get_stretch_margin(margin: Side) const

Высота нижнего ряда 9-частей. Поле 16 означает, что нижние углы и сторона 9-slice будут иметь высоту 16 пикселей. Вы можете задать все 4 значения полей по отдельности, чтобы создать панели с неравномерными границами. Действует только если nine_patch_stretch равен true.


int stretch_margin_left = 0 🔗

  • void set_stretch_margin(margin: Side, value: int)

  • int get_stretch_margin(margin: Side) const

Ширина левого столбца 9-patch. Действует только если nine_patch_stretch равен true.


int stretch_margin_right = 0 🔗

  • void set_stretch_margin(margin: Side, value: int)

  • int get_stretch_margin(margin: Side) const

Ширина правого столбца 9-patch. Действует только если nine_patch_stretch равен true.


int stretch_margin_top = 0 🔗

  • void set_stretch_margin(margin: Side, value: int)

  • int get_stretch_margin(margin: Side) const

Высота верхнего ряда 9-patch. Действует только если nine_patch_stretch равен true.


Texture2D texture_over 🔗

Texture2D, которая рисует поверх полосы прогресса. Используйте ее для добавления бликов или верхней рамки, которая скрывает часть texture_progress.


Texture2D texture_progress 🔗

Texture2D, которая обрезает на основе value и fill_mode узла. По мере увеличения value текстура заполняется. Она отображается полностью, когда value достигает max_value. Она не отображается вообще, если value равно min_value.

Свойство value происходит от Range. См. Range.value, Range.min_value, Range.max_value.


Vector2 texture_progress_offset = Vector2(0, 0) 🔗

  • void set_texture_progress_offset(value: Vector2)

  • Vector2 get_texture_progress_offset()

Смещение texture_progress. Полезно для texture_over и texture_under с причудливыми границами, чтобы избежать прозрачных полей в вашей текстуре прогресса.


Texture2D texture_under 🔗

Texture2D рисуется под полосой прогресса. Фон полосы.


Color tint_over = Color(1, 1, 1, 1) 🔗

  • void set_tint_over(value: Color)

  • Color get_tint_over()

Умножает цвет текстуры texture_over панели. Эффект похож на CanvasItem.modulate, за исключением того, что он влияет только на эту конкретную текстуру, а не на весь узел.


Color tint_progress = Color(1, 1, 1, 1) 🔗

  • void set_tint_progress(value: Color)

  • Color get_tint_progress()

Умножает цвет текстуры texture_progress полосы.


Color tint_under = Color(1, 1, 1, 1) 🔗

  • void set_tint_under(value: Color)

  • Color get_tint_under()

Умножает цвет текстуры texture_under панели.


Описания метода

int get_stretch_margin(margin: Side) const 🔗

Возвращает растягиваемое поле с указанным индексом. См. stretch_margin_bottom и связанные свойства.


void set_stretch_margin(margin: Side, value: int) 🔗

Устанавливает растягиваемое поле с указанным индексом. См. stretch_margin_bottom и связанные свойства.