entity-component-system框架
Go to file
2024-03-13 20:04:20 +08:00
debug 添加仿真panic恢复,使用slog打印 2023-10-10 18:26:51 +08:00
examples world 关闭方法添加对未启动过world的处理 2023-12-28 16:53:30 +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-12-25 10:57:54 +08:00
go.mod 动力学列车数据配置 2024-01-17 13:09:43 +08:00
go.sum 项目名称及路径更改 2024-03-13 20:04:20 +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 Merge branch 'master' of https://git.code.tencent.com/jl-framework/jl-ecs-go into HEAD 2023-11-07 14:02:43 +08:00
system.go 初始版本 2023-08-04 11:02:08 +08:00
world.go 添加不等于nil判断 2024-01-23 10:43:40 +08:00

ECS(Entity Component System)框架

框架暂时基于donburi实现

核心组件概念

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