A sprite sheet animation plugin for bevy
SpriteSheetAnimation
assetTextureAtlasSprite
once
, repeat
and ping_pong
Play
component is present in the entity
Play
component to pause/resume an animation```rust fn main() { App::new() .addplugins(DefaultPlugins) .addplugin(AnimationPlugin::default()) // <-- Add the plugin .addstartupsystem(spawn) .run(); }
fn spawn(
mut commands: Commands,
assetserver: Res
// Create an animation // Here we use an index-range (from 0 to 4) where each frame has the same duration let animationhandle = animations.add(SpriteSheetAnimation::fromrange( 0..=4, Duration::from_millis(100), ));
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 asset handle of the animation .insert(animationhandle) // Start the animation immediately. Remove this component in order to pause the animation. .insert(Play); } ```
Here is the result:
(Asset by La Red Games - CC0)
For more details see the documentation
Add the dependency to your project
sh
cargo add benimator
yaml
deserialization from yaml asset files (also requires unstable-load-from-file
)ron
deserialization from ron asset files (also requires unstable-load-from-file
)Any API behind one of theses feature flags is unstable, should not be considered complete nor part of the public API. Breaking changes to that API may happen in minor releases
unstable-load-from-file
Load animation assets from yaml/ron files. It also requires either ron
or yaml
(or both) features.The minimum supported rust version is currently: 1.60
It may be increased to a newer stable version in a minor release. (but only if needed)
It will be increased to the latest stable version in a major release. (even if not needed)
| bevy | benimator | |------|-----------| | 0.7 | 3 | | 0.6 | 1, 2 | | 0.5 | 0.1 - 0.3 |
Note: Only the latest published version of benimator is supported
Discussions, issues and pull requests are welcome.
It is possible to directly discuss with me (Jomag#2675
) via the bevy discord
Licensed under either of
at your option.