reckfellENGINE

SpriteFrames

Ресурс именованных покадровых анимаций, текстур и относительных длительностей.

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

Хранит данные для AnimatedSprite2D и AnimatedSprite3D: имена клипов, FPS, режим цикла, текстуры и веса длительности кадров. Новый ресурс содержит анимацию default. AddFrame требует существующего имени; сначала вызовите AddAnimation.

Длительность кадра — относительный вес, не секунды. При ненулевой скорости время кадра равно duration / (FPS × abs(playingSpeed)). Ресурс может быть общим; редактирование общего экземпляра меняет данные у всех использующих его спрайтов. Позиция воспроизведения хранится отдельно в каждой Entity.

Полный атлас и расчёт времени.

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

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

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

Свойства1

AnimationsСвойство
# Animations
C#
public Reckfell.Collections.Array Animations { get; set; }

Методы20

AddAnimationvoid
# AddAnimation
C#
public void AddAnimation(StringName anim);

Создаёт пустую именованную анимацию. Имя должно отсутствовать; повторное добавление не очищает существующий клип. Затем добавьте кадры и задайте FPS/режим цикла.

Параметры
ИмяТипПо умолчанию
animStringName—
anim

Новое уникальное имя клипа.

AddFramevoid
# AddFrame
C#
public void AddFrame(StringName anim, Texture2D texture, float duration = 1f, int atPosition = -1);

Добавляет текстуру кадра в уже существующий клип. duration — относительный вес. Допустимый atPosition вставляет перед текущим кадром; отрицательное значение или позиция не меньше числа кадров добавляет в конец.

Параметры
ИмяТипПо умолчанию
animStringName—
textureTexture2D—
durationfloat1f
atPositionint-1
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

texture

Текстура кадра, например AtlasTexture с регионом общего атласа.

duration

Относительный вес длительности, не секунды. При добавлении значения меньше 0,01 поднимаются до 0,01. Значение 2 длится вдвое дольше 1 при одинаковом FPS и скорости.

atPosition

Индекс для вставки перед ним. По умолчанию -1: добавить в конец. Значение, равное числу кадров или больше, тоже добавляет в конец.

Clearvoid
# Clear
C#
public void Clear(StringName anim);

Удаляет все кадры из анимации anim.

Параметры
ИмяТипПо умолчанию
animStringName—
ClearAllvoid
# ClearAll
C#
public void ClearAll();

Удаляет все анимации. Будет создана пустая анимация default.

DuplicateAnimationvoid
# DuplicateAnimation
C#
public void DuplicateAnimation(StringName animFrom, StringName animTo);

Дублирует анимацию anim_from в новую анимацию с именем anim_to. Не выполняется, если anim_to уже существует или если anim_from не существует.

Параметры
ИмяТипПо умолчанию
animFromStringName—
animToStringName—
GetAnimationLoopbool · Устарело
# GetAnimationLoop
C#
public bool GetAnimationLoop(StringName anim);

Устаревшая проверка именно режима Linear. Возвращает false для Pingpong, хотя тот тоже циклический. Читайте GetAnimationLoopMode для полного значения.

Параметры
ИмяТипПо умолчанию
animStringName—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

Возвращает bool

true только при Linear. false не доказывает однократное проигрывание, поскольку включает Pingpong.

GetAnimationLoopModeSpriteFrames.LoopMode
# GetAnimationLoopMode
C#
public SpriteFrames.LoopMode GetAnimationLoopMode(StringName anim);

Читает режим цикла клипа. Не заменяет проверку HasAnimation: при отсутствующем имени движок сообщает ошибку и возвращает None.

Параметры
ИмяТипПо умолчанию
animStringName—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

Возвращает SpriteFrames.LoopMode

Режим LoopMode. Для неизвестного имени запасной None не означает корректный найденный клип.

GetAnimationNamesstring[]
# GetAnimationNames
C#
public string[] GetAnimationNames();

Возвращает массив, содержащий имена, связанные с каждой анимацией. Значения располагаются в алфавитном порядке.

Возвращает string[]
GetAnimationSpeeddouble
# GetAnimationSpeed
C#
public double GetAnimationSpeed(StringName anim);

Читает базовый FPS из ресурса, без SpeedScale и customSpeed конкретной Entity.

Параметры
ИмяТипПо умолчанию
animStringName—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

Возвращает double

Базовый FPS клипа. При неизвестном имени движок сообщает ошибку и возвращает 0.

GetFrameCountint
# GetFrameCount
C#
public int GetFrameCount(StringName anim);

Возвращает число кадров выбранного клипа. Пустой существующий клип имеет 0 кадров и не воспроизводится через Play.

Параметры
ИмяТипПо умолчанию
animStringName—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

Возвращает int

Число кадров. Для неизвестного имени движок сообщает ошибку и также возвращает 0: проверяйте HasAnimation отдельно.

GetFrameDurationfloat
# GetFrameDuration
C#
public float GetFrameDuration(StringName anim, int idx);

Читает относительный вес кадра. При ненулевой скорости время в секундах равно duration / (FPS × abs(playingSpeed)); при нулевой скорости продвижения нет.

Параметры
ИмяТипПо умолчанию
animStringName—
idxint—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

idx

Индекс кадра с нуля в этом клипе.

Возвращает float

Относительный вес, не секунды. Вес 2 удваивает время относительно веса 1 при тех же остальных настройках.

GetFrameTextureTexture2D
# GetFrameTexture
C#
public Texture2D GetFrameTexture(StringName anim, int idx);

Читает текстуру указанного кадра. Для AtlasTexture результат содержит регион, а не автоматически выделенную новую картинку без связи с атласом.

Параметры
ИмяТипПо умолчанию
animStringName—
idxint—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

idx

Индекс кадра с нуля; должен быть меньше GetFrameCount(anim).

Возвращает Texture2D

Texture2D кадра; может быть AtlasTexture. Не предполагает уникальное владение текстурой.

HasAnimationbool
# HasAnimation
C#
public bool HasAnimation(StringName anim);

Проверяет наличие имени в библиотеке, не число кадров и не состояние проигрывания.

Параметры
ИмяТипПо умолчанию
animStringName—
anim

Проверяемое имя клипа.

Возвращает bool

true, если имя существует, даже когда клип пустой.

RemoveAnimationvoid
# RemoveAnimation
C#
public void RemoveAnimation(StringName anim);

Удаляет анимацию anim.

Параметры
ИмяТипПо умолчанию
animStringName—
RemoveFramevoid
# RemoveFrame
C#
public void RemoveFrame(StringName anim, int idx);

Удаляет кадр анимации anim idx.

Параметры
ИмяТипПо умолчанию
animStringName—
idxint—
RenameAnimationvoid
# RenameAnimation
C#
public void RenameAnimation(StringName anim, StringName newname);

Изменяет имя анимации anim на newname.

Параметры
ИмяТипПо умолчанию
animStringName—
newnameStringName—
SetAnimationLoopvoid · Устарело
# SetAnimationLoop
C#
public void SetAnimationLoop(StringName anim, bool loop);

Устаревший bool-метод: true задаёт Linear, false — None. Он не задаёт Pingpong. Для нового кода используйте SetAnimationLoopMode.

Параметры
ИмяТипПо умолчанию
animStringName—
loopbool—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

loop

true для Linear, false для None; не универсальный переключатель всех циклических режимов.

SetAnimationLoopModevoid
# SetAnimationLoopMode
C#
public void SetAnimationLoopMode(StringName anim, SpriteFrames.LoopMode loopMode);

Задаёт режим цикла существующего клипа через LoopMode. Используйте этот метод вместо устаревшего SetAnimationLoop. Изменяется ресурс, а не команда запуска конкретного спрайта.

Параметры
ИмяТипПо умолчанию
animStringName—
loopModeSpriteFrames.LoopMode—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

loopMode

None — один проход; Linear — повтор с начала; Pingpong — смена направления на границе.

SetAnimationSpeedvoid
# SetAnimationSpeed
C#
public void SetAnimationSpeed(StringName anim, double fps);

Задаёт базовый FPS клипа. Ноль допустим и останавливает продвижение без изменения флага IsPlaying спрайта; отрицательное значение отклоняется. Для обратного хода используйте множители AnimatedSprite2D.

Параметры
ИмяТипПо умолчанию
animStringName—
fpsdouble—
anim

Имя существующей анимации; при сомнении сначала вызовите HasAnimation.

fps

Неотрицательный базовый FPS. Веса отдельных кадров и множители спрайта дополнительно меняют длительность.

SetFramevoid
# SetFrame
C#
public void SetFrame(StringName anim, int idx, Texture2D texture, float duration = 1f);

Устанавливает texture и duration кадра idx в анимации anim. duration указывает относительную длительность, подробности см. в SpriteFrames.GetFrameDuration.

Параметры
ИмяТипПо умолчанию
animStringName—
idxint—
textureTexture2D—
durationfloat1f

SpriteFrames.LoopMode

ЗначениеОписание
Linear = 1

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

None = 0

Анимация воспроизводится один раз и останавливается, когда достигает конца, или начала, если воспроизводится в обратном направлении.

Pingpong = 2

Анимация меняет направление каждый раз, когда достигает конца или начала, воспроизводясь вперед, а затем обратно повторно. Примечание: Как AnimatedSprite2D, так и AnimatedSprite3D воспроизводят первый/последний кадр в течение своей продолжительности только один раз на каждом конце цикла анимации (вместо двух раз, по одному на каждое направление анимации).

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

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

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

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