pub enum AnimationDirectionIndexes {
IndexBased(IndexBasedDirection),
FlipBased(FlipBasedDirection),
FX(FXBasedDirection),
}
Expand description
This will determing which y index will be in the animating calculation
So if we have a sprite sheet like this
Our code implementation will look like this
AnimationDirectionIndexes::new(
4, // left
3, // right
2, // up
1 // down
);
Note that bevy_animations uses a 1st index basis for the DirectionIndexes instead of 0th index
§
We can then take that code and call insert_animation()
from the Animations Resource like this
use bevy::prelude::*;
use bevy_animations::*
fn setup_entity(
mut commands: Commands,
mut animations: ResMut<Animations>
) {
let entity = commands.spawn(
AnimationDirection::Still // the `AnimationDirection` component is needed on the entity to determine the direction
SpriteSheetBundle {
atlas: // your texture atlas
transform: Transform::from_xyz(0., 0., 0.), // your desired location in the `World`
..Default::default()
}
/* The rest of your entity configuration */
);
animations.insert_animation(
entity.id(),
AnimationType::Transform(
TransformAnimation::new(
/* animation_frames */ vec![0, 1, 2, 3] // the x index for your frames to cycle through
/* meters per frame */ 0.55 // your desired meters per frame
/* handle */ texture_atlas_handle // your sprite sheet
/* frame */ Vec2::new(4., 4.) // the length and height of your sprite sheet
/* direction_indexes */ AnimationDirectionIndexes::new(4, 3, 2, 1) // from the example above
/* repeating */ true // if the animation is repeating or not
)
)
)
}
Note how the animation_frames
field from the animation definition above is 0th index based
Variants§
Implementations§
source§impl AnimationDirectionIndexes
impl AnimationDirectionIndexes
pub fn one_directional() -> Self
Trait Implementations§
source§impl Clone for AnimationDirectionIndexes
impl Clone for AnimationDirectionIndexes
source§fn clone(&self) -> AnimationDirectionIndexes
fn clone(&self) -> AnimationDirectionIndexes
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for AnimationDirectionIndexes
impl Debug for AnimationDirectionIndexes
source§impl Default for AnimationDirectionIndexes
impl Default for AnimationDirectionIndexes
impl Copy for AnimationDirectionIndexes
Auto Trait Implementations§
impl Freeze for AnimationDirectionIndexes
impl RefUnwindSafe for AnimationDirectionIndexes
impl Send for AnimationDirectionIndexes
impl Sync for AnimationDirectionIndexes
impl Unpin for AnimationDirectionIndexes
impl UnwindSafe for AnimationDirectionIndexes
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
Return the
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
Mutably borrows from an owned value. Read more
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates
Self
using data from the given World
.