Struct bevy_spritesheet_animation::stage::AnimationStage
source · pub struct AnimationStage { /* private fields */ }
Expand description
A stage of an Animation.
All animations are made of stages. Simple animations may contain a single stage while more complex animations may contain a sequence of stages.
An AnimationStage references an AnimationClip that has been created with SpritesheetLibrary::new_clip.
Parameters like duration, repeat and direction can be optionally specified. If specified, they will override the default parameters of the underlying AnimationClip.
Implementations§
source§impl AnimationStage
impl AnimationStage
sourcepub fn new(
clip_id: AnimationClipId,
duration: Option<AnimationDuration>,
repeat: Option<u32>,
direction: Option<AnimationDirection>,
easing: Option<Easing>
) -> Self
pub fn new( clip_id: AnimationClipId, duration: Option<AnimationDuration>, repeat: Option<u32>, direction: Option<AnimationDirection>, easing: Option<Easing> ) -> Self
Creates a new AnimationStage from an AnimationClipId with the given parameters.
§Arguments
clip_id
- the ID of the clip referenced by this stageduration
- the optional duration of this stagerepeat
- the optional number of repetitions of this stagedirection
- the optional direction of this stageeasing
- the optional easing of this stage
§Example
let animation_id = library.new_animation(|animation| {
let mut stage = AnimationStage::new(
clip_id,
Some(AnimationDuration::PerCycle(2500)),
Some(10),
Some(AnimationDirection::Backwards),
Some(Easing::Linear)
);
animation.add_stage(stage);
});
sourcepub fn new_with<F: Fn(&mut Self)>(clip_id: AnimationClipId, builder: F) -> Self
pub fn new_with<F: Fn(&mut Self)>(clip_id: AnimationClipId, builder: F) -> Self
Creates a new AnimationStage from an AnimationClipId and a builder function.
This is convenient if you prefer chaining calls when composing animations.
§Arguments
clip_id
- the ID of the clip referenced by this stagebuilder
- a builder function that takes the new stage as an argument so that you can configure it
§Example
let animation_id = library.new_animation(|animation| {
animation
.add_stage(AnimationStage::new_with(clip1_id, |stage| {
stage.set_repeat(5);
}))
.add_stage(AnimationStage::new_with(clip2_id, |stage| {
stage.set_direction(AnimationDirection::PingPong);
}));
});
sourcepub fn from_clip(clip_id: AnimationClipId) -> Self
pub fn from_clip(clip_id: AnimationClipId) -> Self
Creates a new AnimationStage from an AnimationClipId.
The stage will inherit its clip’s default parameters.
To override them, use the set_XXX()
functions.
§Arguments
clip_id
- the ID of the clip referenced by this stage
§Example
let animation_id = library.new_animation(|animation| {
let stage = AnimationStage::from_clip(clip_id);
animation.add_stage(stage);
});
pub fn clip_id(&self) -> &AnimationClipId
pub fn set_duration(&mut self, duration: AnimationDuration) -> &mut Self
pub fn duration(&self) -> &Option<AnimationDuration>
pub fn set_repeat(&mut self, repeat: u32) -> &mut Self
pub fn repeat(&self) -> &Option<u32>
pub fn set_direction(&mut self, direction: AnimationDirection) -> &mut Self
pub fn direction(&self) -> &Option<AnimationDirection>
pub fn set_easing(&mut self, easing: Easing) -> &mut Self
pub fn easing(&self) -> &Option<Easing>
Trait Implementations§
source§impl Clone for AnimationStage
impl Clone for AnimationStage
source§fn clone(&self) -> AnimationStage
fn clone(&self) -> AnimationStage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AnimationStage
impl Debug for AnimationStage
source§impl From<AnimationClipId> for AnimationStage
impl From<AnimationClipId> for AnimationStage
source§fn from(clip_id: AnimationClipId) -> Self
fn from(clip_id: AnimationClipId) -> Self
Auto Trait Implementations§
impl Freeze for AnimationStage
impl RefUnwindSafe for AnimationStage
impl Send for AnimationStage
impl Sync for AnimationStage
impl Unpin for AnimationStage
impl UnwindSafe for AnimationStage
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.