AniSprite¶
继承: SpriteBase < GeometryRender < VisualRender < Item3D < Item < Object
3D世界中的2D精灵节点,可以使用多个2D纹理进行动画。
描述¶
AniSprite类似于Sprite节点,只是它携带多个纹理作为动画sprite_frames。动画是使用SpriteFrames资源创建的,该资源允许您导入图像文件(或包含所述文件的文件夹)以提供精灵的动画帧。SpriteFrames资源可以通过SpriteFrames底部面板在编辑器中配置。
属性¶
|
||
|
||
|
||
|
||
|
||
SpriteFrames |
方法¶
get_playing_speed() const |
|
is_playing() const |
|
void |
pause() |
void |
play(name: StringName = &"", custom_speed: float = 1.0, from_end: bool = false) |
void |
play_backwards(name: StringName = &"") |
void |
set_frame_and_progress(frame: int, progress: float) |
void |
stop() |
信号¶
animation_changed() 🔗
animation更改时发出。
animation_finished() 🔗
在动画结束时发出,如果反向播放,则在开始时发出。当动画完成时,它会暂停播放。
注意:如果动画循环,则不会发出此信号。
animation_looped() 🔗
动画循环时发出。
frame_changed() 🔗
frame改变时发出。
sprite_frames_changed() 🔗
sprite_frames改变时发出。
属性说明¶
StringName animation = &"default" 🔗
void set_animation(value: StringName)
StringName get_animation()
sprite_frames资源中的当前动画。如果更改此值,则重置frame计数器和frame_progress。
场景加载时播放的动画键。
显示的动画帧的索引。设置此属性也会重置frame_progress。如果不需要,请使用set_frame_and_progress()。
0.0和1.0之间的进度值,直到当前帧转换到下一帧。如果动画向后播放,则该值从1.0转换到0.0。
速度缩放比。例如,如果此值为1,则动画以正常速度播放。如果是0.5,则以一半速度播放。如果是2,则以双倍速度播放。
如果设置为负值,则反向播放动画。如果设置为0,则动画不会前进。
SpriteFrames sprite_frames 🔗
void set_sprite_frames(value: SpriteFrames)
SpriteFrames get_sprite_frames()
包含动画的SpriteFrames资源。允许您选择加载、编辑、清除、设为唯一和保存SpriteFrames资源的状态。
方法说明¶
float get_playing_speed() const 🔗
返回当前动画的实际播放速度,如果不播放,则返回0。此速度是调用play()方法时指定的speed_scale属性乘以custom_speed参数。
如果当前动画向后播放,则返回负值。
返回true如果动画当前正在播放(即使speed_scale和/或custom_speed是0)。
void pause() 🔗
暂停当前播放的动画。frame和frame_progress将被保留,调用play()或不带参数的play_backwards()将从当前播放位置恢复动画。
另请参见stop()。
void play(name: StringName = &"", custom_speed: float = 1.0, from_end: bool = false) 🔗
使用键name播放动画。如果custom_speed为负数,from_end为true,动画将向后播放(相当于调用play_backwards())。
如果使用相同的动画name或没有name参数调用此方法,则分配的动画将在暂停时继续播放。
void play_backwards(name: StringName = &"") 🔗
反向播放键name的动画。
此方法是play()的简写,custom_speed=-1.0和from_end=true,因此请参阅其描述以获取更多信息。
void set_frame_and_progress(frame: int, progress: float) 🔗
将frame和frame_progress设置为给定的值。与设置frame不同的是,该方法不会将frame_progress隐式重置为0.0。
示例:在保持相同的frame和frame_progress的同时,更改动画:
var current_frame = animated_sprite.get_frame()
var current_progress = animated_sprite.get_frame_progress()
animated_sprite.play("walk_another_skin")
animated_sprite.set_frame_and_progress(current_frame, current_progress)
void stop() 🔗
停止当前正在播放的动画。动画位置重置为0,custom_speed重置为1.0。另请参阅pause()。