1 个不稳定版本
0.1.0 | 2023年3月15日 |
---|
#82 在 #foo
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