6个版本 (3个破坏性版本)
0.5.0 | 2024年7月9日 |
---|---|
0.4.0 | 2024年5月5日 |
0.3.1 | 2024年2月24日 |
0.3.0 | 2023年11月19日 |
0.1.1 | 2023年10月22日 |
#208 in 进程宏
每月141次下载
49KB
1K SLoC
Micro Game Macros
构建游戏的实用宏集合
当前版本支持:0.5.x -> Bevy 0.14
宏
对于可执行示例,请访问rustdoc和/或阅读src/lib.rs
中的doctests
JSON加载器
为给定的资产生成Bevy资源加载器,支持定义该资产类型单个实例或该资产类型列表的JSON文件。资产实例需要可识别,尽管用于识别特定资产的性质是可定制的
#[derive(JsonLoader, TypePath, TypeUuid, Serialize, Deserialize, Asset)]
#[loader(
extension = "asset.json", uuid = "00000000-0000-0000-0000-000000000000",
storage = inner_module::SimpleAssetLocator,
asset_name = some_asset_prop, index_name = set_of_assets
)]
#[uuid = "00000000-0000-0000-0000-000000000001"]
pub struct MyAsset {
/// The asset identifier needs to implement [std::fmt::Display]
#[asset_id]
uniq_ident: usize,
}
资产系统
为Bevy游戏中的管理加载生成一组结构体和系统
use bevy::prelude::{Image, Res, Resource};
use micro_games_macros::asset_system;
#[asset_system]
pub struct AssetHandles {
my_asset: Image,
}
pub fn loading_system(mut loader: AssetHandlesLoader) {
loader.load_my_asset("path/to/asset.png", "Asset");
}
pub fn use_asset_system(assets: Res<AssetHandles>) {
let handle = assets.my_asset("Asset");
}
从内部
为封装单个内部类型的结构体(支持元组和命名属性结构体)实现From<T>
use micro_game_macros::FromInner;
#[derive(FromInner)]
struct MyType(usize);
fn example() {
let value = MyType::from(123usize);
}
Kayak小部件
为Kayak UI的"小部件"特性行简单的派生
use micro_game_macros::Widget;
#[derive(Widget)]
struct MyComponent;
// ... Other Kayak Setup ...
依赖项
~265–710KB
~17K SLoC