AnimatedTexture

Obsoleto: This class does not work properly in current versions and may be removed in the future. There is currently no equivalent workaround.

Hereda: Texture2D < Texture < Resource < RefCounted < Object

Textura de conexión para animaciones simples basadas en fotogramas.

Descripción

AnimatedTexture es un formato de recurso para animaciones basadas en fotogramas, donde se pueden encadenar múltiples texturas automáticamente con un retardo predefinido para cada fotograma. A diferencia de AnimationPlayer o AnimatedSprite2D, no es un Node, pero tiene la ventaja de poderse usar en cualquier lugar donde se pueda usar un recurso Texture2D, p. ej. en un TileSet.

La reproducción de la animación está controlada por la propiedad speed_scale, así como por la duración de cada fotograma (véase set_frame_duration()). La animación se repite, es decir, se reiniciará automáticamente en el fotograma 0 tras reproducir el último fotograma.

AnimatedTexture requiere actualmente que todas las texturas de los fotogramas tengan el mismo tamaño; de lo contrario, las más grandes se recortarán para que coincidan con la más pequeña.

Nota: AnimatedTexture no admite el uso de AtlasTextures. Cada fotograma debe ser una Texture2D independiente.

Advertencia: La implementación actual no es eficiente para los renderizadores modernos.

Propiedades

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

Métodos

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)


Constantes

MAX_FRAMES = 256 🔗

El número máximo de fotogramas soportados por AnimatedTexture. Si necesitas más fotogramas en tu animación, usa AnimationPlayer o AnimatedSprite2D.


Descripciones de Propiedades

int current_frame 🔗

  • void set_current_frame(value: int)

  • int get_current_frame()

Establece el fotograma actualmente visible de la textura. Establecer este fotograma mientras se reproduce reinicia el tiempo del fotograma actual, por lo que el fotograma recién seleccionado se reproduce durante toda la duración del fotograma configurada.


int frames = 1 🔗

  • void set_frames(value: int)

  • int get_frames()

Número de fotogramas a usar en la animación. Aunque puedes crear los fotogramas independientemente con set_frame_texture(), necesitas establecer este valor para que la animación tenga en cuenta los nuevos fotogramas. El número máximo de fotogramas es MAX_FRAMES.


bool one_shot = false 🔗

  • void set_one_shot(value: bool)

  • bool get_one_shot()

Si es true, la animación sólo se reproducirá una vez y no volverá al primer fotograma después de llegar al final. Ten en cuenta que al llegar al final no se establecerá pause en true.


bool pause = false 🔗

  • void set_pause(value: bool)

  • bool get_pause()

Si es true, la animación se detendrá donde se encuentra actualmente (es decir, en current_frame). La animación continuará desde donde se detuvo al cambiar esta propiedad a false.


float speed_scale = 1.0 🔗

  • void set_speed_scale(value: float)

  • float get_speed_scale()

La velocidad de la animación se multiplica por este valor. Si se establece un valor negativo, la animación se reproduce en reversa.


Descripciones de Métodos

float get_frame_duration(frame: int) const 🔗

Devuelve la duración del frame dado, en segundos.


Texture2D get_frame_texture(frame: int) const 🔗

Devuelve el Texture2D del marco dado.


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

Establece la duración de cualquier frame dado. La duración final se ve afectada por el speed_scale. Si se establece en 0, el fotograma se omite durante la reproducción.


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

Asigna una Texture2D al fotograma dado. Los ID de los fotogramas empiezan en 0, así que el primer fotograma tiene ID 0, y el último fotograma de la animación tiene ID frames - 1.

Puedes definir cualquier número de texturas hasta MAX_FRAMES, pero ten en cuenta que solo los fotogramas de 0 a frames - 1 formarán parte de la animación.