Sprite2D

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

Універсальний спрайтний вузол.

Опис

Вузлом, який відображає текстуру 2D. Текстура відображається може бути регіоном з більшої текстури атласів, або кадром з анімації аркуша спрайта.

Посібники

Властивості

bool

centered

true

bool

flip_h

false

bool

flip_v

false

int

frame

0

Vector2i

frame_coords

Vector2i(0, 0)

int

hframes

1

Vector2

offset

Vector2(0, 0)

bool

region_enabled

false

bool

region_filter_clip_enabled

false

Rect2

region_rect

Rect2(0, 0, 0, 0)

Texture2D

texture

int

vframes

1

Методи

Rect2

get_rect() const

bool

is_pixel_opaque(pos: Vector2) const


Сигнали

frame_changed() 🔗

Видається, коли змінюється frame.


texture_changed() 🔗

Виникає, коли змінюється texture.


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

bool centered = true 🔗

  • void set_centered(value: bool)

  • bool is_centered()

Якщо true, то текстура розташована.

Примітка: Для ігор з естетичною естетикою піксельного мистецтва, текстури можуть з'явитися деформовані при центруванні. Це викликається їх положенням між пікселями. Щоб запобігти цьому, встановити цю властивість false, або розглянути можливість ProjectSettings.rendering/2d/snap_2d_vertices_to_pixel і ProjectSettings.rendering/2d/snap_2d_transforms_to_pixel.


bool flip_h = false 🔗

  • void set_flip_h(value: bool)

  • bool is_flipped_h()

Якщо true, текстура віддзеркалюється горизонтально.


bool flip_v = false 🔗

  • void set_flip_v(value: bool)

  • bool is_flipped_v()

Якщо true, текстура віддзеркалюється вертикально.


int frame = 0 🔗

  • void set_frame(value: int)

  • int get_frame()

Поточний кадр для відображення з аркуша спрайтів. hframes або vframes має бути більше 1. Ця властивість автоматично налаштовується, коли hframes або vframes змінюються так, щоб вони постійно вказували на той самий візуальний кадр (той самий стовпець і рядок). Якщо це неможливо, це значення скидається до 0.


Vector2i frame_coords = Vector2i(0, 0) 🔗

Координати кадру для відображення зі спрайт-листа. Це псевдонім для властивості frame. hframes або vframes мають бути більшими 1.


int hframes = 1 🔗

  • void set_hframes(value: int)

  • int get_hframes()

Кількість стовпців у спрайтовому аркуші. Коли ця властивість змінюється, frame коригується таким чином, щоб зберегти той самий візуальний кадр (той самий рядок і стовпець). Якщо це неможливо, frame скидається до 0.


Vector2 offset = Vector2(0, 0) 🔗

Зсув малювання текстури.

Примітка: Коли ви збільшуєте offset.y у Sprite2D, спрайт переміщується вниз на екрані (тобто +Y — вниз).


bool region_enabled = false 🔗

  • void set_region_enabled(value: bool)

  • bool is_region_enabled()

Якщо true, текстура вирізається з більшої текстури атласу. Див. region_rect.

Примітка: При використанні власного Shader на Sprite2D, вбудований шейдер UV буде посилатися на весь простір текстури. Замість цього використовуйте вбудований REGION_RECT, щоб отримати область, яка зараз видна, визначену в region_rect. Детальніше див. CanvasItem shaders.


bool region_filter_clip_enabled = false 🔗

  • void set_region_filter_clip_enabled(value: bool)

  • bool is_region_filter_clip_enabled()

Якщо true, область за межами region_rect обрізається, щоб уникнути витоку навколишніх пікселів текстури. region_enabled має мати значення true.


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

  • void set_region_rect(value: Rect2)

  • Rect2 get_region_rect()

Область текстури атласу для відображення. region_enabled має бути true.


Texture2D texture 🔗

Texture2D об'єкт для малювання.


int vframes = 1 🔗

  • void set_vframes(value: int)

  • int get_vframes()

Кількість рядків у спрайтовому аркуші. Коли ця властивість змінюється, frame коригується таким чином, щоб зберегти той самий візуальний кадр (той самий рядок і стовпець). Якщо це неможливо, frame скидається до 0.


Описи методів

Rect2 get_rect() const 🔗

Повертає Rect2, що представляє межу Sprite2D у локальних координатах.

Приклад: Визначити, чи було натиснуто Sprite2D:

func _input(event):
    if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
        if get_rect().has_point(to_local(event.position)):
            print("Клац!")

bool is_pixel_opaque(pos: Vector2) const 🔗

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

Примітка: Він також повертає false, якщо текстура спрайта null або якщо дана позиція недійсна.