entity-component-system框架
Go to file
2023-10-19 17:09:32 +08:00
debug 添加仿真panic恢复,使用slog打印 2023-10-10 18:26:51 +08:00
examples 增加门控箱交互接口;修改门控箱构建逻辑bug;增加屏蔽门状态 2023-10-19 17:09:32 +08:00
filter 导出donburi的filter,以后外部系统就不需要再依赖donburi包了 2023-10-09 11:12:05 +08:00
.gitignore 初始版本 2023-08-04 11:02:08 +08:00
component.go 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +08:00
ecs_test.go 初始版本 2023-08-04 11:02:08 +08:00
entity.go 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +08:00
entry.go 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +08:00
events.go 调整仿真运行逻辑 2023-10-12 11:07:12 +08:00
go.mod 添加仿真panic恢复,使用slog打印 2023-10-10 18:26:51 +08:00
go.sum 导出donburi的filter,以后外部系统就不需要再依赖donburi包了 2023-10-09 11:12:05 +08:00
query.go 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +08:00
README.md 添加一些代码说明 2023-08-04 13:15:42 +08:00
request.go 添加Result类型 2023-10-12 14:04:23 +08:00
system.go 初始版本 2023-08-04 11:02:08 +08:00
world.go 添加世界运行异常时的堆栈打印 2023-10-19 13:12:45 +08:00

ECS(Entity Component System)框架

框架暂时基于donburi实现

核心组件概念

  • 组件数据:保存状态的数据结构
  • 组件(Component):组件数据的包装,调用 ecs.NewComponentType 生成的组件对象
  • 实体(Entity)一个或多个组件构成一个实体World.Create 或 World.CreateMany 创建
  • 入口(Entry):对实体进行操作的入口,获取或修改实体组件数据
  • 查询(Query): 用于组件查询,可以使用多种过滤器,同一个 Query 不能多线程使用
  • 过滤器(filter):组件查询使用
  • 系统(ISystem):对于功能逻辑的抽象,用于更新组件数据