NinePatchRect

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

Элемент управления, который отображает текстуру, сохраняя ее углы нетронутыми, но размещая ее края и центр.

Описание

Также известный как 9-секционные панели, NinePatchRect создает чистые панели любого размера на основе небольшой текстуры. Для этого он разбивает текстуру на сетку 3×3. Когда вы масштабируете узел, он размещает края текстуры по горизонтали или вертикали, размещает центр по обеим осям и оставляет углы неизменными.

Свойства

AxisStretchMode

axis_stretch_horizontal

0

AxisStretchMode

axis_stretch_vertical

0

bool

draw_center

true

MouseFilter

mouse_filter

2 (overrides Control)

int

patch_margin_bottom

0

int

patch_margin_left

0

int

patch_margin_right

0

int

patch_margin_top

0

Rect2

region_rect

Rect2(0, 0, 0, 0)

Texture2D

texture

Методы

int

get_patch_margin(margin: Side) const

void

set_patch_margin(margin: Side, value: int)


Сигналы

texture_changed() 🔗

Вызывается при изменении текстуры узла.


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

enum AxisStretchMode: 🔗

AxisStretchMode AXIS_STRETCH_MODE_STRETCH = 0

Растягивает центральную текстуру по NinePatchRect. Это может привести к искажению текстуры.

AxisStretchMode AXIS_STRETCH_MODE_TILE = 1

Повторяет центральную текстуру по NinePatchRect. Это не вызовет видимых искажений. Текстура должна быть бесшовной, чтобы это работало без отображения артефактов между краями.

AxisStretchMode AXIS_STRETCH_MODE_TILE_FIT = 2

Повторяет центральную текстуру по NinePatchRect, но также растягивает текстуру, чтобы убедиться, что каждый тайл виден полностью. Это может привести к искажению текстуры, но меньше, чем AXIS_STRETCH_MODE_STRETCH. Текстура должна быть бесшовной, чтобы это работало без отображения артефактов между краями.


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

AxisStretchMode axis_stretch_horizontal = 0 🔗

Режим растяжения, используемый для горизонтального растяжения/тайлинга.


AxisStretchMode axis_stretch_vertical = 0 🔗

Режим растяжения, используемый для вертикального растяжения/тайлинга.


bool draw_center = true 🔗

  • void set_draw_center(value: bool)

  • bool is_draw_center_enabled()

Если true, рисуем центр панели. В противном случае рисуем только границы 9-слоя.


int patch_margin_bottom = 0 🔗

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

  • int get_patch_margin(margin: Side) const

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


int patch_margin_left = 0 🔗

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

  • int get_patch_margin(margin: Side) const

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


int patch_margin_right = 0 🔗

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

  • int get_patch_margin(margin: Side) const

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


int patch_margin_top = 0 🔗

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

  • int get_patch_margin(margin: Side) const

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


Rect2 region_rect = Rect2(0, 0, 0, 0) 🔗

  • void set_region_rect(value: Rect2)

  • Rect2 get_region_rect()

Прямоугольная область текстуры для выборки. Если вы работаете с атласом, используйте это свойство для определения области, которую должен использовать 9-срез. Все остальные свойства относятся к этому. Если прямоугольник пуст, NinePatchRect будет использовать всю текстуру.


Texture2D texture 🔗

Ресурс текстуры узла.


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

int get_patch_margin(margin: Side) const 🔗

Возвращает размер поля на указанной Side.


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

Устанавливает размер поля на указанной стороне Side равным value пикселей.