4个版本
0.2.0 | 2024年7月21日 |
---|---|
0.1.2 | 2024年7月5日 |
0.1.1 | 2024年5月5日 |
0.1.0 | 2024年5月4日 |
#2370 in 游戏开发
177 每月下载量
用于 moonshine-view
9KB
🍸 Moonshine Core
Bevy中ECS驱动的开发更容易、更安全的非传统库。
查看各个包以获取详细文档和示例。
🍎 Moonshine Kind
Bevy实体的类型安全解决方案
use bevy::prelude::*;
use moonshine_core::prelude::*;
#[derive(Component)]
struct Fruit;
#[derive(Component)]
struct FruitBasket {
fruits: Vec<Instance<Fruit>>
}
🌴 Moonshine Object
管理复杂实体层次结构的便利包装器
use bevy::prelude::*;
use moonshine_core::prelude::*;
#[derive(Component)]
struct Bird;
#[derive(Component)]
struct Flying;
fn setup_bird(birds: Objects<Bird, Added<Flying>>, mut commands: Commands) {
for bird in birds.iter() {
if let Some(wings) = bird.find_by_path("./Wings") {
for wing in wings.children() {
// TODO: Flap! Flap!
}
}
}
}
💾 Moonshine Save
持久游戏状态的保存/加载框架
use bevy::prelude::*;
use moonshine_core::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins((SavePlugin, LoadPlugin))
.add_systems(PreUpdate, save_default().into_file("world.ron").run_if(should_save))
.add_systems(PreUpdate, load_from_file("world.ron").run_if(should_load))
.run();
}
fn should_save(key: Res<ButtonInput<KeyCode>>) -> bool {
key.just_pressed(KeyCode::KeyS)
}
fn should_load(key: Res<ButtonInput<KeyCode>>) -> bool {
key.just_pressed(KeyCode::KeyL)
}
🥚 Moonshine Spawn
用于在没有系统的情况下生成实体层次结构的工具
use bevy::prelude::*;
use moonshine_spawn::prelude::*;
fn chicken() -> impl Bundle {
Chicken.with_children(|chicken| {
chicken.spawn(ChickenHead);
})
}
#[derive(Component)]
struct Chicken;
#[derive(Component)]
struct ChickenHead;
🛠️ Moonshine Utilities
用于提高安全性、诊断和便利性的通用工具集合。
支持
请提交问题以报告任何错误、问题或建议。
您也可以在官方Bevy Discord服务器上联系我,昵称@Zeenobit。
依赖关系
~16–50MB
~858K SLoC