SpriteFrames
Ресурс именованных покадровых анимаций, текстур и относительных длительностей.
Хранит данные для AnimatedSprite2D и AnimatedSprite3D: имена клипов, FPS, режим цикла, текстуры и веса длительности кадров. Новый ресурс содержит анимацию default. AddFrame требует существующего имени; сначала вызовите AddAnimation.
Длительность кадра — относительный вес, не секунды. При ненулевой скорости время кадра равно duration / (FPS × abs(playingSpeed)). Ресурс может быть общим; редактирование общего экземпляра меняет данные у всех использующих его спрайтов. Позиция воспроизведения хранится отдельно в каждой Entity.
Полный атлас и расчёт времени.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
SpriteFramesКонструктор
public SpriteFrames();Свойства1
AnimationsСвойство
public Reckfell.Collections.Array Animations { get; set; }Методы20
AddAnimationvoid
public void AddAnimation(StringName anim);Создаёт пустую именованную анимацию. Имя должно отсутствовать; повторное добавление не очищает существующий клип. Затем добавьте кадры и задайте FPS/режим цикла.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
animНовое уникальное имя клипа.
AddFramevoid
public void AddFrame(StringName anim, Texture2D texture, float duration = 1f, int atPosition = -1);Добавляет текстуру кадра в уже существующий клип. duration — относительный вес. Допустимый atPosition вставляет перед текущим кадром; отрицательное значение или позиция не меньше числа кадров добавляет в конец.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
texture | Texture2D | — |
duration | float | 1f |
atPosition | int | -1 |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
textureТекстура кадра, например AtlasTexture с регионом общего атласа.
durationОтносительный вес длительности, не секунды. При добавлении значения меньше 0,01 поднимаются до 0,01. Значение 2 длится вдвое дольше 1 при одинаковом FPS и скорости.
atPositionИндекс для вставки перед ним. По умолчанию -1: добавить в конец. Значение, равное числу кадров или больше, тоже добавляет в конец.
Clearvoid
public void Clear(StringName anim);Удаляет все кадры из анимации anim.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
ClearAllvoid
public void ClearAll();Удаляет все анимации. Будет создана пустая анимация default.
DuplicateAnimationvoid
public void DuplicateAnimation(StringName animFrom, StringName animTo);Дублирует анимацию anim_from в новую анимацию с именем anim_to. Не выполняется, если anim_to уже существует или если anim_from не существует.
| Имя | Тип | По умолчанию |
|---|---|---|
animFrom | StringName | — |
animTo | StringName | — |
GetAnimationLoopbool · Устарело
public bool GetAnimationLoop(StringName anim);Устаревшая проверка именно режима Linear. Возвращает false для Pingpong, хотя тот тоже циклический. Читайте GetAnimationLoopMode для полного значения.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
booltrue только при Linear. false не доказывает однократное проигрывание, поскольку включает Pingpong.
GetAnimationLoopModeSpriteFrames.LoopMode
public SpriteFrames.LoopMode GetAnimationLoopMode(StringName anim);Читает режим цикла клипа. Не заменяет проверку HasAnimation: при отсутствующем имени движок сообщает ошибку и возвращает None.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
SpriteFrames.LoopModeРежим LoopMode. Для неизвестного имени запасной None не означает корректный найденный клип.
GetAnimationNamesstring[]
public string[] GetAnimationNames();Возвращает массив, содержащий имена, связанные с каждой анимацией. Значения располагаются в алфавитном порядке.
string[]GetAnimationSpeeddouble
public double GetAnimationSpeed(StringName anim);Читает базовый FPS из ресурса, без SpeedScale и customSpeed конкретной Entity.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
doubleБазовый FPS клипа. При неизвестном имени движок сообщает ошибку и возвращает 0.
GetFrameCountint
public int GetFrameCount(StringName anim);Возвращает число кадров выбранного клипа. Пустой существующий клип имеет 0 кадров и не воспроизводится через Play.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
intЧисло кадров. Для неизвестного имени движок сообщает ошибку и также возвращает 0: проверяйте HasAnimation отдельно.
GetFrameDurationfloat
public float GetFrameDuration(StringName anim, int idx);Читает относительный вес кадра. При ненулевой скорости время в секундах равно duration / (FPS × abs(playingSpeed)); при нулевой скорости продвижения нет.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
idx | int | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
idxИндекс кадра с нуля в этом клипе.
floatОтносительный вес, не секунды. Вес 2 удваивает время относительно веса 1 при тех же остальных настройках.
GetFrameTextureTexture2D
public Texture2D GetFrameTexture(StringName anim, int idx);Читает текстуру указанного кадра. Для AtlasTexture результат содержит регион, а не автоматически выделенную новую картинку без связи с атласом.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
idx | int | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
idxИндекс кадра с нуля; должен быть меньше GetFrameCount(anim).
Texture2DTexture2D кадра; может быть AtlasTexture. Не предполагает уникальное владение текстурой.
HasAnimationbool
public bool HasAnimation(StringName anim);Проверяет наличие имени в библиотеке, не число кадров и не состояние проигрывания.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
animПроверяемое имя клипа.
booltrue, если имя существует, даже когда клип пустой.
RemoveAnimationvoid
public void RemoveAnimation(StringName anim);Удаляет анимацию anim.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
RemoveFramevoid
public void RemoveFrame(StringName anim, int idx);Удаляет кадр анимации anim idx.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
idx | int | — |
RenameAnimationvoid
public void RenameAnimation(StringName anim, StringName newname);Изменяет имя анимации anim на newname.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
newname | StringName | — |
SetAnimationLoopvoid · Устарело
public void SetAnimationLoop(StringName anim, bool loop);Устаревший bool-метод: true задаёт Linear, false — None. Он не задаёт Pingpong. Для нового кода используйте SetAnimationLoopMode.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
loop | bool | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
looptrue для Linear, false для None; не универсальный переключатель всех циклических режимов.
SetAnimationLoopModevoid
public void SetAnimationLoopMode(StringName anim, SpriteFrames.LoopMode loopMode);Задаёт режим цикла существующего клипа через LoopMode. Используйте этот метод вместо устаревшего SetAnimationLoop. Изменяется ресурс, а не команда запуска конкретного спрайта.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
loopMode | SpriteFrames.LoopMode | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
loopModeNone — один проход; Linear — повтор с начала; Pingpong — смена направления на границе.
SetAnimationSpeedvoid
public void SetAnimationSpeed(StringName anim, double fps);Задаёт базовый FPS клипа. Ноль допустим и останавливает продвижение без изменения флага IsPlaying спрайта; отрицательное значение отклоняется. Для обратного хода используйте множители AnimatedSprite2D.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
fps | double | — |
animИмя существующей анимации; при сомнении сначала вызовите HasAnimation.
fpsНеотрицательный базовый FPS. Веса отдельных кадров и множители спрайта дополнительно меняют длительность.
SetFramevoid
public void SetFrame(StringName anim, int idx, Texture2D texture, float duration = 1f);Устанавливает texture и duration кадра idx в анимации anim. duration указывает относительную длительность, подробности см. в SpriteFrames.GetFrameDuration.
| Имя | Тип | По умолчанию |
|---|---|---|
anim | StringName | — |
idx | int | — |
texture | Texture2D | — |
duration | float | 1f |
SpriteFrames.LoopMode
| Значение | Описание |
|---|---|
Linear = 1 | Анимация перезапускается сначала, когда она доходит до конца, или от конца, если анимация проигрывается в обратном порядке, непрерывно повторяясь. |
None = 0 | Анимация воспроизводится один раз и останавливается, когда достигает конца, или начала, если воспроизводится в обратном направлении. |
Pingpong = 2 | Анимация меняет направление каждый раз, когда достигает конца или начала, воспроизводясь вперед, а затем обратно повторно.
Примечание: Как |