reckfellENGINE

AnimatedSprite2D

Покадровый спрайт 2D с собственным курсором воспроизведения.

На этой странице
class AnimatedSprite2DReckfellSharpНаследует Entity2D

Воспроизводит именованные анимации из SpriteFrames. Ресурс хранит данные кадров, а эта Entity — имя клипа, Frame, FrameProgress и состояние воспроизведения. Общий ресурс не объединяет курсоры нескольких Entity, но изменение его кадров или FPS влияет на всех пользователей.

Play/Pause/Stop управляют курсором; IsPlaying может быть true при нулевой скорости. Замена SpriteFrames другим ресурсом останавливает воспроизведение. Спрайт не создаёт физическую форму или игровое событие сам по себе.

Полный пример с движением · Время и кадры.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

AnimatedSprite2DКонструктор
# AnimatedSprite2D
C#
public AnimatedSprite2D();

Свойства10

AnimationСвойство
# Animation
C#
public StringName Animation { get; set; }

Имя выбранного клипа. Смена имени выбирает начальный кадр по направлению текущего проигрывания: первый при прямом, последний при обратном. Это не самостоятельная команда Play и не универсальный сброс к нулю.

AutoplayСвойство
# Autoplay
C#
public string Autoplay { get; set; }

Ключ анимации, воспроизводимой при загрузке сцены.

CenteredСвойство
# Centered
C#
public bool Centered { get; set; }

Если true, текстура будет центрирована. Примечание: В играх с пиксельной эстетикой текстуры могут выглядеть деформированными при центрировании. Это вызвано их положением между пикселями. Чтобы предотвратить это, установите это свойство на false или рассмотрите возможность включения ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel и ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel.

FlipHСвойство
# FlipH
C#
public bool FlipH { get; set; }

Если true, текстура отражена по горизонтали.

FlipVСвойство
# FlipV
C#
public bool FlipV { get; set; }

Если true, текстура отражена по вертикали.

FrameСвойство
# Frame
C#
public int Frame { get; set; }

Индекс отображаемого кадра. Присваивание также задаёт FrameProgress: 1 при отрицательном GetPlayingSpeed, иначе 0, в том числе на паузе. Чтобы сохранить заданную долю, используйте SetFrameAndProgress.

FrameProgressСвойство
# FrameProgress
C#
public float FrameProgress { get; set; }

Доля текущего кадра: при прямом ходе обычно растёт от 0 до 1, при обратном уменьшается от 1 до 0. Явно присвоенное значение не ограничивается этим диапазоном автоматически. Для обычного позиционирования передавайте [0,1].

OffsetСвойство
# Offset
C#
public Vector2 Offset { get; set; }

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

SpeedScaleСвойство
# SpeedScale
C#
public float SpeedScale { get; set; }

Множитель скорости Entity. Направление задаёт знак произведения SpeedScale и customSpeed из Play. Ноль замораживает продвижение без команды Pause. Stop сохраняет SpeedScale. Это не FPS клипа.

SpriteFramesСвойство
# SpriteFrames
C#
public SpriteFrames SpriteFrames { get; set; }

Источник кадров и клипов. Назначение другого ресурса останавливает воспроизведение и сбрасывает курсор; повторное назначение того же экземпляра ничего не сбрасывает. Изменения общего ресурса видны другим его пользователям.

Методы27

GetAnimationStringName
# GetAnimation
C#
public StringName GetAnimation();
Возвращает StringName
GetAutoplaystring
# GetAutoplay
C#
public string GetAutoplay();
Возвращает string
GetFrameint
# GetFrame
C#
public int GetFrame();
Возвращает int
GetFrameProgressfloat
# GetFrameProgress
C#
public float GetFrameProgress();
Возвращает float
GetOffsetVector2
# GetOffset
C#
public Vector2 GetOffset();
Возвращает Vector2
GetPlayingSpeedfloat
# GetPlayingSpeed
C#
public float GetPlayingSpeed();

Возвращает произведение SpeedScale и customSpeed при включённом проигрывании, иначе 0. В значение не входят FPS клипа и относительная длительность кадра.

Возвращает float

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

GetSpeedScalefloat
# GetSpeedScale
C#
public float GetSpeedScale();
Возвращает float
GetSpriteFramesSpriteFrames
# GetSpriteFrames
C#
public SpriteFrames GetSpriteFrames();
Возвращает SpriteFrames
IsCenteredbool
# IsCentered
C#
public bool IsCentered();
Возвращает bool
IsFlippedHbool
# IsFlippedH
C#
public bool IsFlippedH();
Возвращает bool
IsFlippedVbool
# IsFlippedV
C#
public bool IsFlippedV();
Возвращает bool
IsPlayingbool
# IsPlaying
C#
public bool IsPlaying();

Проверяет флаг проигрывания, а не изменение картинки. При нулевом SpeedScale, customSpeed или FPS результат может оставаться true. Pause, Stop и завершение однократного клипа выключают проигрывание.

Возвращает bool

true при включённом проигрывании; само по себе не гарантирует смену кадров.

Pausevoid
# Pause
C#
public void Pause();

Выключает проигрывание, сохраняя Frame и FrameProgress. Play того же клипа продолжает с этого места, но использует множитель customSpeed нового вызова. GetPlayingSpeed на паузе возвращает 0.

Playvoid
# Play
C#
public void Play(StringName name = null, float customSpeed = 1f, bool fromEnd = false);

Запускает существующий непустой клип. Смена имени устанавливает начало или конец по fromEnd. Для того же имени возобновляет курсор после Pause; каждый вызов заменяет customSpeed. Для явного перезапуска используйте Stop, затем Play.

Параметры
ИмяТипПо умолчанию
nameStringNamenull
customSpeedfloat1f
fromEndboolfalse
name

Имя клипа в SpriteFrames. Значение по умолчанию выбирает текущий клип; оно не означает первый клип библиотеки.

customSpeed

Множитель этого вызова, умножаемый на SpeedScale. 0 не продвигает кадры, отрицательное произведение задаёт обратный ход. При следующем Play без аргумента снова используется 1.

fromEnd

Начать с конца при выборе нового клипа. Это положение курсора, а не команда обратного направления. Для того же клипа произвольную позицию задавайте SetFrameAndProgress.

PlayBackwardsvoid
# PlayBackwards
C#
public void PlayBackwards(StringName name = null);

Сокращение Play(name, -1, true). Ожидаемый обратный ход получается при положительном SpeedScale; отрицательный SpeedScale меняет знак произведения обратно. После паузы тот же клип может продолжиться с сохранённого места.

Параметры
ИмяТипПо умолчанию
nameStringNamenull
name

Имя существующего клипа; значение по умолчанию использует текущий.

SetAnimationvoid
# SetAnimation
C#
public void SetAnimation(StringName name);
Параметры
ИмяТипПо умолчанию
nameStringName—
SetAutoplayvoid
# SetAutoplay
C#
public void SetAutoplay(string name);
Параметры
ИмяТипПо умолчанию
namestring—
SetCenteredvoid
# SetCentered
C#
public void SetCentered(bool centered);
Параметры
ИмяТипПо умолчанию
centeredbool—
SetFlipHvoid
# SetFlipH
C#
public void SetFlipH(bool flipH);
Параметры
ИмяТипПо умолчанию
flipHbool—
SetFlipVvoid
# SetFlipV
C#
public void SetFlipV(bool flipV);
Параметры
ИмяТипПо умолчанию
flipVbool—
SetFramevoid
# SetFrame
C#
public void SetFrame(int frame);
Параметры
ИмяТипПо умолчанию
frameint—
SetFrameAndProgressvoid
# SetFrameAndProgress
C#
public void SetFrameAndProgress(int frame, float progress);

Явно задаёт индекс и долю кадра, не меняя флаг проигрывания. При существующем клипе индекс ограничивается допустимыми кадрами; progress не ограничивается автоматически.

Параметры
ИмяТипПо умолчанию
frameint—
progressfloat—
frame

Индекс с нуля. Отрицательный становится 0, превышающий последний допустимый — последним кадром существующего клипа.

progress

Доля кадра. Обычно [0,1]: 0 — начало прямого хода, 1 — начало обратного. Метод сохраняет переданное значение без clamp.

SetFrameProgressvoid
# SetFrameProgress
C#
public void SetFrameProgress(float progress);
Параметры
ИмяТипПо умолчанию
progressfloat—
SetOffsetvoid
# SetOffset
C#
public void SetOffset(Vector2 offset);
Параметры
ИмяТипПо умолчанию
offsetVector2—
SetSpeedScalevoid
# SetSpeedScale
C#
public void SetSpeedScale(float speedScale);
Параметры
ИмяТипПо умолчанию
speedScalefloat—
SetSpriteFramesvoid
# SetSpriteFrames
C#
public void SetSpriteFrames(SpriteFrames spriteFrames);
Параметры
ИмяТипПо умолчанию
spriteFramesSpriteFrames—
Stopvoid
# Stop
C#
public void Stop();

Выключает проигрывание, сбрасывает Frame и FrameProgress в 0 и customSpeed в 1. Сохраняет SpeedScale и выбранное имя Animation. Для сохранения курсора используйте Pause.

Сигналы и события5

AnimationChangedСобытие
# AnimationChanged
C#
public event Action AnimationChanged;

Вызывается при изменении AnimatedSprite2D.Animation.

AnimationFinishedСобытие
# AnimationFinished
C#
public event Action AnimationFinished;

Уведомляет о достижении конца однократного клипа при прямом ходе или начала при обратном. Проигрывание при этом ставится на паузу у границы. Для циклов используйте AnimationLooped; ожидание этого события у бесконечного цикла не завершится на очередном обороте.

AnimationLoopedСобытие
# AnimationLooped
C#
public event Action AnimationLooped;

Уведомляет о переходе через границу циклического клипа. Для Pingpong переход меняет направление, для Linear начинает новый проход. Это не AnimationFinished и не самостоятельное игровое событие.

FrameChangedСобытие
# FrameChanged
C#
public event Action FrameChanged;

Уведомление спрайта об изменении кадра, в том числе при ручной установке курсора. Не используйте как счётчик кадров экрана или гарантию одного игрового эффекта на действие.

SpriteFramesChangedСобытие
# SpriteFramesChanged
C#
public event Action SpriteFramesChanged;

Вызывается при изменении AnimatedSprite2D.SpriteFrames.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.