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" 🔗

Текущая анимация из ресурса sprite_frames. Если это значение изменяется, то сбрасываются счетчик frame и frame_progress.


String 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) 🔗

Смещение текстуры.


float speed_scale = 1.0 🔗

  • void set_speed_scale(value: float)

  • float get_speed_scale()

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

Если установлено отрицательное значение, анимация воспроизводится в обратном направлении. Если установлено значение 0, анимация не будет продвигаться.


SpriteFrames 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() 🔗

Приостанавливает текущую воспроизводимую анимацию. Member 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().