Перейти к содержанию

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: Ширина ячейки в пикселях..