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.

AnimatedSprite2D

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

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

Опис

Вузол AnimatedSprite2D подібний до вузла Sprite2D, за винятком того, що він містить декілька текстур в якості кадрів анімації. Анімація створюється за допомогою ресурсу SpriteFrames, який дозволяє імпортувати файли зображень (або папку з цими файлами) для створення кадрів анімації для спрайту. Ресурс SpriteFrames можна налаштувати у редакторі за допомогою нижньої панелі SpriteFrames.

Посібники

Властивості

StringName

animation

&"default"

String

autoplay

""

bool

centered

true

bool

flip_h

false

bool

flip_v

false

int

frame

0

float

frame_progress

0.0

Vector2

offset

Vector2(0, 0)

float

speed_scale

1.0

SpriteFrames

sprite_frames

Методи

float

get_playing_speed() const

bool

is_playing() const

void

pause()

void

play(name: StringName = &"", custom_speed: float = 1.0, from_end: bool = false)

void

play_backwards(name: StringName = &"")

void

set_frame_and_progress(frame: int, progress: float)

void

stop()


Сигнали

animation_changed() 🔗

Випромінюється, коли змінюється animation.


animation_finished() 🔗

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

Примітка. Цей сигнал не випромінюється, якщо анімація повторюється.


animation_looped() 🔗

Випромінюється, коли анімація повторюється.


frame_changed() 🔗

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


sprite_frames_changed() 🔗

Випромінюється, коли змінюється sprite_frames.


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

StringName animation = &"default" 🔗

  • void set_animation(value: StringName)

  • StringName get_animation()

Поточна анімація з ресурсу sprite_frames. Якщо це значення змінюється, лічильник frame та frame_progress обнуляються.


String autoplay = "" 🔗

  • void set_autoplay(value: String)

  • String get_autoplay()

Ключ анімації для відтворення при завантаженні сцени.


bool centered = true 🔗

  • void set_centered(value: bool)

  • bool is_centered()

Якщо true, текстура буде відцентрована.

Примітка. В іграх із естетикою піксельного мистецтва текстури можуть виглядати деформованими, якщо їх центрувати. Це викликано їх розташуванням між пікселями. Щоб запобігти цьому, установіть для цієї властивості значення false або спробуйте ввімкнути ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel і ProjectSettings.rendering/2d/snap/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()

Індекс відображуваного кадру анімації. Встановлення цієї властивості також скидає frame_progress. Якщо це не бажано, використовуйте set_frame_and_progress().


float frame_progress = 0.0 🔗

  • void set_frame_progress(value: float)

  • float get_frame_progress()

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


Vector2 offset = Vector2(0, 0) 🔗

  • void set_offset(value: Vector2)

  • Vector2 get_offset()

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


float speed_scale = 1.0 🔗

  • void set_speed_scale(value: float)

  • float get_speed_scale()

Коефіцієнт масштабування швидкості. Наприклад, якщо це значення 1, то анімація відтворюється з нормальною швидкістю. Якщо це 0.5, то вона відтворюється наполовину швидко. Якщо це 2, то анімація відтворюється з подвійною швидкістю.

Якщо встановлено від'ємне значення, анімація відтворюється у зворотному напрямку. Якщо встановлено 0, анімація не буде відтворюватися.


SpriteFrames sprite_frames 🔗

  • void set_sprite_frames(value: SpriteFrames)

  • SpriteFrames get_sprite_frames()

Ресурс SpriteFrames, що містить анімацію(ї). Дозволяє завантажувати, редагувати, очищати, робити унікальними та зберігати стани ресурсу SpriteFrames.


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

float get_playing_speed() const 🔗

Повертає фактичну швидкість відтворення поточної анімації або 0, якщо вона не відтворюється. Ця швидкість - це властивість speed_scale, помножена на аргумент custom_speed, вказаний при виклику методу play().

Повертає від'ємне значення, якщо поточна анімація відтворюється у зворотному напрямку.


bool is_playing() const 🔗

Повертає true, якщо анімація зараз відтворюється (навіть якщо speed_scale та/або custom_speed рівні 0).


void pause() 🔗

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

Дивіться також stop().


void play(name: StringName = &"", custom_speed: float = 1.0, from_end: bool = false) 🔗

Відтворює анімацію з ключем name. Якщо custom_speed від'ємний, а from_end має значення true, анімація буде відтворюватися у зворотному напрямку (що еквівалентно виклику play_backwards()).

Якщо цей метод викликати з тією самою анімацією name або без параметра name, призначена анімація відновить відтворення, якщо її було призупинено.


void play_backwards(name: StringName = &"") 🔗

Відтворює анімацію з ключем name у зворотному напрямку.

Цей метод є скороченням від play() з custom_speed = -1.0 і from_end = true, тому дивіться його опис для додаткової інформації.


void set_frame_and_progress(frame: int, progress: float) 🔗

Встановлює для frame та frame_progress задані значення. На відміну від встановлення frame, цей метод не скидає frame_progress до 0.0 неявно.

Приклад: Змініть анімацію, зберігаючи ті самі frame та frame_progress:

var current_frame = animated_sprite.get_frame()
var current_progress = animated_sprite.get_frame_progress()
animated_sprite.play("walk_another_skin")
animated_sprite.set_frame_and_progress(current_frame, current_progress)

void stop() 🔗

Зупиняє відтворення поточної анімації. Позицію анімації буде скинуто до 0, а custom_speed до 1.0. Дивіться також pause().