5个发布版本
0.1.4 | 2022年9月30日 |
---|---|
0.1.3 | 2022年9月29日 |
0.1.2 | 2022年9月29日 |
0.1.1 | 2022年9月29日 |
0.1.0 | 2022年9月29日 |
#1413 在 游戏开发
每月21次下载
11KB
162 行
ENCO (EN实体和CO组件)
这是一个用于管理实体和组件的非常简单的库。这不是一个实体组件系统(ECS)库。
ENCO的设计注重简单性,不应在性能至关重要的项目中使用。
话虽如此,它非常容易使用。
基本用法
实体存在于一个World
中,它用作修改它们的API。
实体可以赋予组件,可以是任何类型。
use enco::world::*;
// Defining the components
struct PositionComponent {
x: i32,
y: i32,
}
struct TagComponent {
tag: String
}
// Creating a world
let mut world = World::new();
// Creating entities
let entity_id = world
.create_entity()
.with(PositionComponent{x: 0, y: 0})
.with(TagComponent{tag: "First entity".to_string()})
.done();
// Entity components can be accessed through the entity id
let tag_component = world
.get_entity_component::<TagComponent>(&entity_id)
.unwrap();
// Entity components can be deleted
let tag_component = world
.delete_entity_component::<TagComponent>(&entity_id)
.unwrap();
// Entities themselves can be deleted
world.delete_entity(&entity_id).unwrap();