#entity-component #projects #performance

enco

一个简单的实体-组件库(不是ECS库!)适用于小型项目

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次下载

MIT 许可证

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();

无运行时依赖