#sprite-sheet #animation #bevy-plugin #bevy #manifest-file #assets #gamedev

bevy_trickfilm

用于从ron编写的清单文件中加载精灵图动画的Bevy插件

7个版本 (破坏性)

0.7.0 2024年7月7日
0.6.0 2024年2月18日
0.5.0 2023年11月22日
0.4.0 2023年11月8日
0.1.0 2023年2月26日

#505 in 游戏开发

Download history 5/week @ 2024-06-03 2/week @ 2024-06-10 90/week @ 2024-07-01 60/week @ 2024-07-08 18/week @ 2024-07-15 23/week @ 2024-07-22 86/week @ 2024-07-29 18/week @ 2024-08-05

每月149次下载

MIT/Apache

41KB
398

bevy_trickfilm

crates.io Bevy tracking docs.rs MIT/Apache 2.0

bevy bevy_trickfilm
main main
0.14 0.7.0
0.13 0.6.0
0.12 0.4.0, 0.5.0
0.11 0.3.0
0.10 0.2.0
0.9 0.1.0

什么是bevy_trickfilm?

这是一个简单的插件,可以从ron编写的清单文件中加载精灵图动画。动画不直接绑定到特定的精灵图。您可以将其与能够从清单文件中加载纹理图集的插件结合使用。例如:[bevy_titan](https://github.com/KirmesBude/bevy_titan) 或 [bevy_heterogeneous_texture_atlas_loader](https://github.com/ickshonpe/bevy_heterogeneous_texture_atlas_loader)。

快速入门

# In your Cargo.toml
bevy_trickfilm = "0.7"

animation_clip.trickfilm

//! A basic example of a trickfilm file.
{
    "idle": (
        keyframes: KeyframesRange((start: 0, end: 4)),
        duration: 1.0,
    ),
    "run": (
        keyframes: KeyframesRange((start: 4, end: 10)),
        duration: 0.6,
    ),
    "jump": (
        keyframes: KeyframesVec([10,11,12]),
	    keyframe_timestamps: Some([0.0. 1.0, 3.0]),
        duration: 0.4,
    ),
}

main.rs

//! A basic example of how to load an AnimationClip2D asset from a trickfilm file
//! and play the animation clip.
use bevy::prelude::*;
use bevy_trickfilm::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(Animation2DPlugin)
        .add_systems(Startup, (setup, load_texture_atlas).chain())
        .add_systems(Update, play_animation_once_loaded)
        .run();
}

fn setup() {
    /* Setup camera and other stuff */
}

fn load_texture_atlas(mut commands: Commands) {
    let texture_handle = /* Create your TextureAtlas and retrieve a handle to it */;
    let layout_handle = /* Create your TextureAtlas and retrieve a handle to it */;

    commands
        .spawn(SpriteBundle {
            texture: texture_handle,
            ..Default::default()
        })
        .insert(TextureAtlas {
            layout: layout_handle,
            ..Default::default()
        })
        .insert(AnimationPlayer2D::default());
}

// Once the scene is loaded, start the animation
fn play_animation_once_loaded(
    asset_server: Res<AssetServer>
    mut players: Query<&mut AnimationPlayer2D, Added<AnimationPlayer2D>>,
) {
    for mut player in &mut players {
        player.start(asset_server.load("animation_clip.trickfilm#idle")).repeat();
    }
}

文档

完整API文档

文件格式规范

示例

未来工作

  • 不确定

许可证

bevy_trickfilm是免费的、开源的,并具有许可权限!除非另有说明(以下或单个文件中),本存储库中所有代码都根据您的选择在以下许可证下双许可:

这意味着您可以选择您喜欢的许可证!

一些代码是从其他来源改编的。本存储库中包含的资产受不同的开源许可证约束。请参阅CREDITS.md,了解改编代码的来源和这些文件的许可证。

您的贡献

除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献都应如上双许可,而无需任何附加条款或条件。

依赖项

~35–72MB
~1M SLoC