#ecs #component #entity #game

kudo

一个极简的实体组件系统。(正在进行中)

4个版本 (破坏性更新)

0.4.0 2020年10月24日
0.3.0 2020年10月24日
0.2.0 2020年10月16日
0.1.0 2020年10月15日

游戏开发中排名1738

Zlib许可证

48KB
918

👏 kudo

Documentation Crates.io License: Zlib

正在进行中

Rust的实体组件系统。快速、简单、可预测。

  • 不安全
  • 无依赖
  • 少于1k行代码(目前)
struct Health(f32);
struct Name(String);
struct CreepySnakeHair(u32);

let mut world = World::new();

// Create entities with components.
world.spawn((Name("Perseus".to_string()), Health(50.)));
world.spawn((
    Name("Medusa".to_string()),
    Health(100.),
    CreepySnakeHair(300),
));

// Find every entity with a `Name` and a `Health` component.
let mut query = world.query::<(&Name, &Health)>().unwrap();

// Iterate through all entities with those components.
for (name, health) in query.iter() {
    println!("{}'s health is: {:?}", name.0, health.0);
}

Kudo受到了库hecs的启发。如果您需要功能更丰富的ECS,请尝试使用hecs

无运行时依赖