A sprite animation library for rust game development.
Initially designed for [bevy], it is now engine agnostic.
This project aim to provide the building the blocks to facilitate 2d sprite animation with any game engine.
Benimator is not rendering anything. It only keeps track of sprite indices.
One is expected to use benimator with a game engine such as [bevy].
At its core benimator is an Animation
data structure
and a State
to track the frame-index as time pass.
```rust // Create an animation let animation = Animation::fromindices(0..=3, FrameRate::fromfps(10.0));
// Create a new animation state let mut state = State::new();
// In the game loop, for each update, tell the state how much time has elapsed let deltatime = Duration::frommillis(250); state.update(&animation, delta_time);
// Then get the current frame index. // (so that we can tell our engine to render the sprite at that index) asserteq!(state.frameindex(), 2); ```
Have a look at the examples for complete examples using the [bevy] game engine.
benimator is published on crates.io
You can add the dependency to your cargo file with:
sh
cargo add benimator
| Feature | Description |
|---------|--------------------------------------------------|
| serde
| Implementations of Serialize
and Deserialize
|
Feature flags not mentioned here are NOT part of the public API and are subject to breaking changes!
The minimum supported rust version is currently 1.60
.
It can be updated to a newer stable version when required, and that will not be considered a breaking change (it can happen in for a minor or patch release).
Licensed under either of
at your option.