4个版本 (2个稳定版本)
1.1.0 | 2020年6月22日 |
---|---|
1.0.0 | 2020年6月9日 |
0.1.1 | 2020年2月16日 |
0.1.0 | 2020年2月16日 |
在游戏开发中排名第1180
26KB
546 行
tecs
TeaECS是一个简单的Rust ECS。我创建这个项目是为了学习。
这个项目没有雄心要成为像Legion或Specs这样的流行ECS库一样好或更好。然而,它受到了它们的大力启发。
实体的数据存储在唯一的Vecs中(每个组件类型一个)。
tecs不提供并行处理功能。
使用tecs
创建实体
let mut ecs = Ecs::new();
let entity_id = ecs.new_entity()
.with_component(Position { x: 0.5, y: 0.3 })
.with_component(Speed { x: 1.0, y: 2.0 })
.build();
删除实体
ecs.remove_entity(1);
查询Ecs
let mut ecs = Ecs::new();
ecs.new_entity()
.with_component(Position { x: 0.5, y: 0.3 })
.with_component(Speed { x: 1.0, y: 2.0 })
.build();
ecs.new_entity()
.with_component(Position { x: 1.2, y: 2.2 })
.with_component(Speed { x: 0.5, y: 0.1 })
.build();
for (position, speed) in <(Mut<Position>, Imm<Speed>)>::iter(&mut ecs) {
position.x += speed.x;
position.y += speed.y;
}
贡献
欢迎为项目创建问题和拉取请求。
依赖关系
~465KB