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

MIT许可

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