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.
Checking the stable version of the documentation...
SpriteFrames
繼承: Resource < RefCounted < Object
精靈影格庫,用於 AnimatedSprite2D 和 AnimatedSprite3D。
說明
AnimatedSprite2D 和 AnimatedSprite3D 節點的精靈影格庫。包含影格和用於播放的動畫資訊。
方法
void |
add_animation(anim: StringName) |
void |
add_frame(anim: StringName, texture: Texture2D, duration: float = 1.0, at_position: int = -1) |
void |
clear(anim: StringName) |
void |
|
void |
duplicate_animation(anim_from: StringName, anim_to: StringName) |
get_animation_loop(anim: StringName) const |
|
get_animation_loop_mode(anim: StringName) const |
|
get_animation_names() const |
|
get_animation_speed(anim: StringName) const |
|
get_frame_count(anim: StringName) const |
|
get_frame_duration(anim: StringName, idx: int) const |
|
get_frame_texture(anim: StringName, idx: int) const |
|
has_animation(anim: StringName) const |
|
void |
remove_animation(anim: StringName) |
void |
remove_frame(anim: StringName, idx: int) |
void |
rename_animation(anim: StringName, newname: StringName) |
void |
set_animation_loop(anim: StringName, loop: bool) |
void |
set_animation_loop_mode(anim: StringName, loop_mode: LoopMode) |
void |
set_animation_speed(anim: StringName, fps: float) |
void |
set_frame(anim: StringName, idx: int, texture: Texture2D, duration: float = 1.0) |
列舉
enum LoopMode: 🔗
LoopMode LOOP_NONE = 0
動畫只播放一次,播放到末尾時就會停止;如果是倒放,則播放到開頭時停止。
LoopMode LOOP_LINEAR = 1
當動畫到達結尾時,會從開頭重新開始;如果逆序播放,則從結尾重新開始,從而實現連續不斷的循環。
LoopMode LOOP_PINGPONG = 2
動畫每次到達結尾或開頭時都會交替播放方向,反復進行正向播放和逆向播放。
注意: AnimatedSprite2D 和 AnimatedSprite3D 在動畫循環的每一端,僅播放一次首影格/尾影格的完整時長(而不是兩次,即不會在正向和逆向播放方向各播放一次)。
方法說明
void add_animation(anim: StringName) 🔗
向庫中新增新動畫 anim。
void add_frame(anim: StringName, texture: Texture2D, duration: float = 1.0, at_position: int = -1) 🔗
向 anim 動畫中新增一影格。如果 at_position 為 -1,則該影格會新增至該動畫的末尾。duration 指定的是相對時長,詳見 get_frame_duration()。
void clear(anim: StringName) 🔗
刪除 anim 動畫中的所有影格。
void clear_all() 🔗
移除所有動畫。將建立名為 default 的空動畫。
void duplicate_animation(anim_from: StringName, anim_to: StringName) 🔗
將動畫 anim_from 複製為名叫 anim_to 的新動畫。如果 anim_to 已存在或 anim_from 不存在則會失敗。
bool get_animation_loop(anim: StringName) const 🔗
已棄用: Use get_animation_loop_mode() instead.
如果 get_animation_loop_mode(anim) == LOOP_LINEAR(即取得到的動畫循環模式為線性循環),則回傳 true。否則,回傳 false。
LoopMode get_animation_loop_mode(anim: StringName) const 🔗
回傳 anim 動畫的循環模式。
PackedStringArray get_animation_names() const 🔗
返回一個包含每個動畫的名稱的陣列。值按字母順序排列。
float get_animation_speed(anim: StringName) const 🔗
返回 anim 動畫的速度,單位為影格每秒。
int get_frame_count(anim: StringName) const 🔗
返回 anim 動畫中的影格數。
float get_frame_duration(anim: StringName, idx: int) const 🔗
返回 anim 動畫中 idx 影格的相對持續時間(預設為 1.0)。例如,持續時間為 2.0 的影格的顯示長度是持續時間為 1.0 的影格的兩倍。可以使用如下公式計算某一影格的絕對持續時間(單位為秒):
absolute_duration = relative_duration / (animation_fps * abs(playing_speed))
在這個例子中,playing_speed 是 AnimatedSprite2D.get_playing_speed() 或 AnimatedSprite3D.get_playing_speed()。
Texture2D get_frame_texture(anim: StringName, idx: int) const 🔗
返回 anim 動畫中影格索引為 idx 的紋理。
bool has_animation(anim: StringName) const 🔗
如果 anim 動畫存在,則返回 true。
void remove_animation(anim: StringName) 🔗
移除 anim 動畫。
void remove_frame(anim: StringName, idx: int) 🔗
移除 anim 動畫中索引為 idx 的影格。
void rename_animation(anim: StringName, newname: StringName) 🔗
將 anim 動畫的名稱更改為 newname。
void set_animation_loop(anim: StringName, loop: bool) 🔗
已棄用: Use set_animation_loop_mode() instead.
如果 loop 為 false,則等同於 set_animation_loop_mode(LOOP_NONE);
如果 loop 為 true,則等同於 set_animation_loop_mode(LOOP_LINEAR)。
void set_animation_loop_mode(anim: StringName, loop_mode: LoopMode) 🔗
為 anim 動畫設定 loop_mode(循環模式)。
void set_animation_speed(anim: StringName, fps: float) 🔗
設定 anim 動畫的速度,單位為影格每秒。
void set_frame(anim: StringName, idx: int, texture: Texture2D, duration: float = 1.0) 🔗
設定 anim 動畫中索引為 idx 的影格的紋理 texture 和持續時間 duration。duration 指定的是相對時長,詳見 get_frame_duration()。