A sprite sheet animation plugin for bevy
SpriteSheetAnimation
component to automatically update the indices of the TextureAtlasSprite
in the same entityPlay
component is present in the entity
Play
component to pause/resume an animation```rust fn main() { App::build() .addplugins(DefaultPlugins) .addplugin(AnimationPlugin) // <-- Add the plugin .addstartupsystem(spawn.system()) .run(); }
fn spawn(
mut commands: Commands,
assetserver: Res
commands // Spawn a bevy sprite-sheet .spawnbundle(SpriteSheetBundle { textureatlas: textures.add(TextureAtlas::fromgrid(assetserver.load("coin.png"), Vec2::new(16.0, 16.0), 5, 1)), transform: Transform::fromscale(Vec3::splat(10.0)), ..Default::default() }) // Insert the animation component // Here we use an index-range (from 0 to 4) where each frame has the same duration .insert(SpriteSheetAnimation::fromrange(0..=4, Duration::from_millis(100))) // Start the animation immediately. Remove this component in order to pause the animation. .insert(Play); } ```
Here is the result:
For more details see the documentation
Add to Cargo.toml
:
toml
benimator = "0.1.0"
| bevy | benimator | |------|------------| | 0.5 | >= 0.1 |
You can open issues/discussions here, or you can discuss with me (Jomag#2675
) in
the bevy discord