#ecs #component #entity #world #query #executor #foo

已删除 tombstone

实体组件系统

1 个不稳定版本

0.1.0 2023年3月15日

#82#foo

MIT 许可证

26KB
593 代码行

墓碑

我在 Rust 中尝试实现 ECS。

安装

[dependencies]
tombstone = "0.1"

使用

请参阅游戏包文档或示例


lib.rs:

墓碑

我在 Rust 中尝试实现 ECS。

#
#
fn main() {
    let mut w = World::new();

    w.spawn().add(Foo::new(1, 3.6));
    w.spawn().add(Foo::new(2, 5.2));

    let mut ex = Executor::new();
    ex.register(system);

    let mut sum = 0.;
    for i in 1..=5 {
        println!("Iter{i}:");
        ex.run_with_state(&mut w, &mut sum);
    }
    assert_eq!(sum, (3.6 + 5.2) * 5.);
}

fn system(mut q: Query<(Foo,), f32>) {
    for &id in q.ids() {
        let (foo,) = q.select_mut(id);
        println!("Entity{id}: ({}, {})", foo.a, foo.b);

        foo.a += 1;
        *q.state() += foo.b;
    }
}

依赖项

~425KB