AnimatedTexture

Устарело: This class does not work properly in current versions and may be removed in the future. There is currently no equivalent workaround.

Наследует: Texture2D < Texture < Resource < RefCounted < Object

Прокси-текстура для простых покадровых анимаций.

Описание

AnimatedTexture — это формат ресурса для покадровых анимаций, где несколько текстур могут быть автоматически сцеплены с предопределенной задержкой для каждого кадра. В отличие от AnimationPlayer или AnimatedSprite2D, не является Node, и имеет преимущество в том, что может быть использован везде, где может быть использован ресурс Texture2D, например в TileSet.

Воспроизведение анимации контролируется свойством speed_scale, а также опциональной задержкой каждого кадра (см. set_frame_duration()). Анимация зациклена, т.е. после проигрывания последнего кадра она автоматически перезапускается на 0 кадр.

В настоящее время AnimatedTexture требует, чтобы все текстуры кадров имели одинаковый размер, в противном случае более крупные будут обрезаны в соответствии с наименьшим кадром.

Примечание: AnimatedTexture не поддерживает AtlasTexture. Каждый кадр должен быть отдельным Texture2D.

Предупреждение: Текущая реализация для современных методов отрисовки неэффективна.

Свойства

int

current_frame

int

frames

1

bool

one_shot

false

bool

pause

false

bool

resource_local_to_scene

false (overrides Resource)

float

speed_scale

1.0

Методы

float

get_frame_duration(frame: int) const

Texture2D

get_frame_texture(frame: int) const

void

set_frame_duration(frame: int, duration: float)

void

set_frame_texture(frame: int, texture: Texture2D)


Константы

MAX_FRAMES = 256 🔗

Максимальное количество кадров, поддерживаемое AnimatedTexture. Если вам нужно больше кадров в анимации, используйте AnimationPlayer или AnimatedSprite2D.


Описания свойств

int current_frame 🔗

  • void set_current_frame(value: int)

  • int get_current_frame()

Устанавливает текущий видимый кадр текстуры. Установка этого кадра во время воспроизведения сбрасывает текущее время кадра, поэтому вновь выбранный кадр воспроизводится в течение всей настроенной длительности кадра.


int frames = 1 🔗

  • void set_frames(value: int)

  • int get_frames()

Количество кадров, используемых в анимации. Хотя кадры можно создавать самостоятельно с помощью set_frame_texture(), необходимо установить это значение, чтобы анимация учитывала новые кадры. Максимальное количество кадров - MAX_FRAMES.


bool one_shot = false 🔗

  • void set_one_shot(value: bool)

  • bool get_one_shot()

Если true, анимация будет воспроизводиться только один раз и не будет возвращаться к первому кадру после достижения конца. Обратите внимание, что достижение конца не установит pause в true.


bool pause = false 🔗

  • void set_pause(value: bool)

  • bool get_pause()

Если true, анимация приостанавливается там, где она находится в данный момент (т.е. на current_frame). При изменении этого свойства на false анимация продолжится с того места, где она была приостановлена.


float speed_scale = 1.0 🔗

  • void set_speed_scale(value: float)

  • float get_speed_scale()

Скорость анимации умножается на это значение. Если задано отрицательное значение, анимация воспроизводится в обратном порядке.


Описания метода

float get_frame_duration(frame: int) const 🔗

Возвращает длительность указанного frame в секундах.


Texture2D get_frame_texture(frame: int) const 🔗

Возвращает Texture2D указанного кадра.


void set_frame_duration(frame: int, duration: float) 🔗

Устанавливает длительность любого заданного frame. Окончательная длительность зависит от speed_scale. Если установлено значение 0, кадр пропускается во время воспроизведения.


void set_frame_texture(frame: int, texture: Texture2D) 🔗

Назначает Texture2D данному кадру. Идентификаторы кадров начинаются с 0, поэтому первый кадр имеет идентификатор 0, а последний кадр анимации имеет идентификатор frames - 1.

Вы можете определить любое количество текстур вплоть до MAX_FRAMES, но имейте в виду, что только кадры от 0 до frames - 1 будут частью анимации.