AnimatedTexture

Inherits: Texture < Resource < Reference < Object

基于简单帧动画的代理纹理。

描述

AnimatedTexture是一种资源格式,用于基于帧的动画,其中多个纹理自动链接起来,每帧有预定义延迟。与AnimationPlayerAnimatedSprite不同,它不是一个Node,其优点是可在任何可以使用Texture资源的地方使用,例如在TileSet中。

动画的播放由fps属性以及每一帧的可选延迟控制,参阅set_frame_delay。动画是循环播放的,也就是说,在播放完最后一帧后,它将自动从第0帧重新开始。

AnimatedTexture目前要求所有帧的纹理具有相同的尺寸,否则较大的纹理会被裁剪,与最小的纹理相匹配。

注意: AnimatedTexture不支持使用AtlasTexture。每一帧都需要是一个单独的Texture

属性

int

current_frame

int

flags

0 (overrides Texture)

float

fps

4.0

int

frames

1

bool

oneshot

false

bool

pause

false

方法

float

get_frame_delay ( int frame ) const

Texture

get_frame_texture ( int frame ) const

void

set_frame_delay ( int frame, float delay )

void

set_frame_texture ( int frame, Texture texture )

常量

属性说明

  • int current_frame

Setter

set_current_frame(value)

Getter

get_current_frame()

设置纹理当前可见的帧。


Default

4.0

Setter

set_fps(value)

Getter

get_fps()

动画速度,以每秒帧数为单位。此值定义动画两个帧之间的默认时间间隔,并因此基于frames属性定义动画循环的总体持续时间。值为0表示每秒没有预定义的帧数,动画将根据每个帧的帧延迟播放(请参阅set_frame_delay)。

例如,具有8帧,无帧延迟且fps值为2的动画将运行4秒,每帧持续0.5秒。


Default

1

Setter

set_frames(value)

Getter

get_frames()

动画中要使用的帧数。虽然您可以使用set_frame_texture独立创建帧,但是您需要为动画设置此值以考虑新帧。最大帧数为MAX_FRAMES


Default

false

Setter

set_oneshot(value)

Getter

get_oneshot()

如果 true,则动画将只播放一次,并且在到达结尾后将不会循环回到第一帧。请注意,到达终点不会将 pause 设置为 true


Default

false

Setter

set_pause(value)

Getter

get_pause()

如果true,则动画将暂停在当前位置(即current_frame)。将此属性更改为false时,动画将从暂停处继续播放。

方法说明

  • float get_frame_delay ( int frame ) const

返回给定帧的延迟值。


返回给定帧的Texture


  • void set_frame_delay ( int frame, float delay )

在此帧和下一帧之间设置额外的延迟(以秒为内),该延迟将添加到 fps 定义的时间间隔中。默认情况下,框架没有延迟定义。如果定义了延迟值,则此帧和下一帧之间的最终时间间隔将是 1.0 / fps + delay

例如,对于具有 3 帧、2 个 FPS 和 1.2 第二帧上的帧延迟的动画,由此产生的回放将是:

  1. Frame 0: 0.5 s (1 / fps)
  2. Frame 1: 1.7 s (1 / fps + 1.2)
  3. Frame 2: 0.5 s (1 / fps)
  4. Total duration: 2.7 s

  • void set_frame_texture ( int frame, Texture texture )

Texture 分配给给定的帧。帧 ID 从 0 开始,因此第一帧的 ID 为 0,动画的最后一帧的 ID 为 frames -1。

您可以定义最多 MAX_FRAMES 个纹理,但要记住,只有 0 到 frames - 1 的帧会成为动画的一部分。