#aseprite #bevy #graphics #data-file

已删除 bevy_ase

将Aseprite文件加载到Bevy应用程序的实用程序

1 个不稳定版本

0.6.0 2023年9月2日

#1043游戏开发

自定义许可

54KB
802

将Aseprite文件加载到Bevy应用程序的实用程序。

提供一个AssetLoader结构体,它可以直接读取.aseprite文件,无需中间导入步骤。加载器添加由文件数据生成的资源。系统可以调用加载器的函数来开始加载文件,或查询加载状态。

资源

此库创建了几种类型的资源

  • 纹理数据,包含文件中的图像。
  • 纹理图集数据,包含精灵图中的每个精灵的映射信息。
  • 动画数据。
  • 切片数据。
  • 瓦片集数据(来自Aseprite v1.3测试版创建的文件)。

配置

此库公开了AseLoaderDefaultPlugin,具有默认设置。此插件将所有上述资源初始化为Asset类型,添加Loader和AseAssetLoader资源,并添加导入系统函数以处理加载的ase数据。

对于自定义配置,导入组成部分并直接添加到AppBuilder中。需要初始化纹理资源。其他资产类型是可选的。

示例

use bevy::prelude::*;
use bevy_ase::asset::AseAsset;
use bevy_ase::loader::{AseLoaderDefaultPlugin, Loader};
use std::path::Path;

// Initialize and run a bevy app with the default bevy_ase configuration.
fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugin(AseLoaderDefaultPlugin)
        .add_system(load_sprites.system());
}

// Get an aseprite asset and send it to the loader.
pub fn load_sprites(asset_server: Res<AssetServer>, mut loader: ResMut<Loader>) {
    let h: Handle<AseAsset> = asset_server.load(Path::new("sprites/hello.aseprite"));
    loader.add(h.clone());
}

有关更多信息,请参阅lib.rs文档。

https://github.com/alpine-alpaca/bevy_proto_aseprite 分支。

示例

cargo run --example animated --features="benimator"

待办事项

  • 改进错误处理。

  • 如果精灵太多/太大,则图集创建失败。

  • 热重载。这需要动态图集重建。

依赖关系

~21–30MB
~461K SLoC