AnimatedTexture
Изменяемая текстура sprite sheet, кадры которой сменяются по игровым тикам из равномерной сетки ячеек.
Обзор
AnimatedTexture разбивает текстуру sprite sheet на равномерную сетку ячеек и последовательно сменяет кадры в заданном диапазоне по игровым тикам без необходимости обновления со стороны виджетов.
Сетка и размеры
Размер ячейки задается через setCellSize(width, height). Кадры нумеруются слева направо и сверху вниз по колонкам сетки.
Воспроизведение и тайминг
Используйте setAnimation(from, to) для выбора диапазона кадров включительно (при from > to воспроизведение идет в обратную сторону) и setAnimation(ticksPerFrame) для управления длительностью кадра.
Базовая анимация частиц из спрайт-листа
AnimatedTexture particles = new AnimatedTexture(sheet)
.setCellSize(8)
.setAnimation(32, 44)
.setAnimation(1);
scope.texture(particles, x, y, 32.0f, 32.0f, Paint.NONE);
Связанные ссылки
- TextureHandle: Backend-нейтральный интерфейс текстурного ресурса, предоставляющий размеры, параметры сэмплирования и доступ к нативному объекту.
- TextureRegion: Неизменяемая прямоугольная UV-область внутри родительской текстуры для отрисовки спрайтов из атласов.
API
AnimatedTexture(String, int, int)
Создает анимированную текстуру по идентификатору ресурса и известным размерам листа.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Строковый идентификатор ресурса. |
sheetWidth |
int |
Ширина sprite sheet в пикселях. |
sheetHeight |
int |
Высота sprite sheet в пикселях. |
AnimatedTexture(TextureHandle)
Создает анимированную текстуру поверх готового дескриптора sprite sheet.
| Параметр | Тип | Описание |
|---|---|---|
sheet |
TextureHandle |
Дескриптор текстуры sprite sheet. |
AnimatedTexture::base()
Возвращает базовый физический дескриптор текстуры sprite sheet.
Возвращает TextureHandle: Базовый дескриптор текстуры..
AnimatedTexture::cellHeight()
Возвращает настроенную высоту ячейки в пикселях.
Возвращает int: Высота ячейки в пикселях..
AnimatedTexture::cellWidth()
Возвращает настроенную ширину ячейки в пикселях.
Возвращает int: Ширина ячейки в пикселях..
AnimatedTexture::currentFrame()
Возвращает номер кадра сетки для текущего тика TextureClock.
Возвращает int: Вычисленный номер кадра в сетке..
AnimatedTexture::firstFrame()
Возвращает индекс начального кадра последовательности анимации.
Возвращает int: Индекс начального кадра..
AnimatedTexture::frameAt(long)
Вычисляет номер кадра сетки для указанного абсолютного игрового тика.
| Параметр | Тип | Описание |
|---|---|---|
ticks |
long |
Абсолютное количество тиков. |
Возвращает int: Вычисленный номер кадра в сетке..
AnimatedTexture::frameCount()
Возвращает общее количество кадров в активном диапазоне анимации.
Возвращает int: Общее количество кадров в диапазоне..
AnimatedTexture::frameUv(int, MutableRect)
Вычисляет координаты UV-прямоугольника внутри sprite sheet для указанного номера кадра.
| Параметр | Тип | Описание |
|---|---|---|
frame |
int |
Номер кадра в сетке. |
out |
MutableRect |
Изменяемый прямоугольник для записи UV-координат. |
AnimatedTexture::height()
Возвращает видимую высоту ячейки в пикселях.
Возвращает int: Высота ячейки в пикселях..
AnimatedTexture::id()
Возвращает идентификатор ресурса текстуры базового sprite sheet.
Возвращает String: Строковый идентификатор текстуры..
AnimatedTexture::lastFrame()
Возвращает индекс конечного кадра последовательности анимации.
Возвращает int: Индекс конечного кадра..
AnimatedTexture::nativeHandle()
Возвращает низкоуровневый дескриптор платформы базового sprite sheet.
Возвращает Object: Низкоуровневый дескриптор текстуры платформы..
AnimatedTexture::options()
Возвращает параметры выборки текстуры базового sprite sheet.
Возвращает TextureOptions: Параметры выборки текстуры..
AnimatedTexture::resolveUv(MutableRect)
Разрешает нормализованные UV-координаты для текущего кадра анимации с учетом базовой текстуры.
| Параметр | Тип | Описание |
|---|---|---|
out |
MutableRect |
Изменяемый прямоугольник для записи UV-координат. |
Возвращает boolean: true, если вычисление UV выполнено успешно..
AnimatedTexture::setAnimation(int)
Задает длительность одного кадра анимации в игровых тиках.
| Параметр | Тип | Описание |
|---|---|---|
ticksPerFrame |
int |
Длительность кадра в тиках. |
Возвращает AnimatedTexture: Текущий экземпляр анимированной текстуры для цепочки вызовов..
AnimatedTexture::setAnimation(int, int)
Задает диапазон номеров кадров включительно; при from > to анимация проигрывается в обратную сторону.
| Параметр | Тип | Описание |
|---|---|---|
from |
int |
Индекс начального кадра. |
to |
int |
Индекс конечного кадра. |
Возвращает AnimatedTexture: Текущий экземпляр анимированной текстуры для цепочки вызовов..
AnimatedTexture::setCellSize(int)
Задает размер квадратной ячейки сетки в пикселях.
| Параметр | Тип | Описание |
|---|---|---|
size |
int |
Размер стороны ячейки в пикселях. |
Возвращает AnimatedTexture: Текущий экземпляр анимированной текстуры для цепочки вызовов..
AnimatedTexture::setCellSize(int, int)
Задает ширину и высоту ячейки сетки анимации в пикселях.
| Параметр | Тип | Описание |
|---|---|---|
width |
int |
Ширина ячейки в пикселях. |
height |
int |
Высота ячейки в пикселях. |
Возвращает AnimatedTexture: Текущий экземпляр анимированной текстуры для цепочки вызовов..
AnimatedTexture::sheet()
Возвращает дескриптор базовой текстуры sprite sheet.
Возвращает TextureHandle: Базовая текстура sprite sheet..
AnimatedTexture::ticksPerFrame()
Возвращает количество игровых тиков на один кадр анимации.
Возвращает int: Количество тиков на кадр..
AnimatedTexture::width()
Возвращает видимую ширину ячейки в пикселях.
Возвращает int: Ширина ячейки в пикселях..