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