Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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 будуть частиною анімації.