AnimatedTexture
Inherits: Texture < Resource < Reference < Object
基于简单帧动画的代理纹理。
描述
AnimatedTexture
是一种资源格式,用于基于帧的动画,其中多个纹理自动链接起来,每帧有预定义延迟。与AnimationPlayer或AnimatedSprite不同,它不是一个Node,其优点是可在任何可以使用Texture资源的地方使用,例如在TileSet中。
动画的播放由fps属性以及每一帧的可选延迟控制,参阅set_frame_delay。动画是循环播放的,也就是说,在播放完最后一帧后,它将自动从第0帧重新开始。
AnimatedTexture
目前要求所有帧的纹理具有相同的尺寸,否则较大的纹理会被裁剪,与最小的纹理相匹配。
注意: AnimatedTexture不支持使用AtlasTexture。每一帧都需要是一个单独的Texture。
属性
flags |
| |
| ||
| ||
| ||
|
方法
get_frame_delay ( int frame ) const | |
get_frame_texture ( int frame ) const | |
void | set_frame_delay ( int frame, float delay ) |
void | set_frame_texture ( int frame, Texture texture ) |
常量
- MAX_FRAMES = 256 —-
AnimatedTexture
支持的最大帧数。如果动画中需要更多帧,请使用AnimationPlayer或AnimatedSprite。
属性说明
- int current_frame
Setter | set_current_frame(value) |
Getter | get_current_frame() |
设置纹理当前可见的帧。
- float fps
Default |
|
Setter | set_fps(value) |
Getter | get_fps() |
动画速度,以每秒帧数为单位。此值定义动画两个帧之间的默认时间间隔,并因此基于frames属性定义动画循环的总体持续时间。值为0表示每秒没有预定义的帧数,动画将根据每个帧的帧延迟播放(请参阅set_frame_delay)。
例如,具有8帧,无帧延迟且fps
值为2的动画将运行4秒,每帧持续0.5秒。
- int frames
Default |
|
Setter | set_frames(value) |
Getter | get_frames() |
动画中要使用的帧数。虽然您可以使用set_frame_texture独立创建帧,但是您需要为动画设置此值以考虑新帧。最大帧数为MAX_FRAMES。
- bool oneshot
Default |
|
Setter | set_oneshot(value) |
Getter | get_oneshot() |
如果 true
,则动画将只播放一次,并且在到达结尾后将不会循环回到第一帧。请注意,到达终点不会将 pause 设置为 true
。
- bool pause
Default |
|
Setter | set_pause(value) |
Getter | get_pause() |
如果true
,则动画将暂停在当前位置(即current_frame)。将此属性更改为false
时,动画将从暂停处继续播放。
方法说明
返回给定帧的延迟值。
返回给定帧的Texture。
在此帧和下一帧之间设置额外的延迟(以秒为内),该延迟将添加到 fps 定义的时间间隔中。默认情况下,框架没有延迟定义。如果定义了延迟值,则此帧和下一帧之间的最终时间间隔将是 1.0 / fps + delay
。
例如,对于具有 3 帧、2 个 FPS 和 1.2 第二帧上的帧延迟的动画,由此产生的回放将是:
Frame 0: 0.5 s (1 / fps)
Frame 1: 1.7 s (1 / fps + 1.2)
Frame 2: 0.5 s (1 / fps)
Total duration: 2.7 s
将 Texture 分配给给定的帧。帧 ID 从 0 开始,因此第一帧的 ID 为 0,动画的最后一帧的 ID 为 frames -1。
您可以定义最多 MAX_FRAMES 个纹理,但要记住,只有 0 到 frames - 1 的帧会成为动画的一部分。