entity-component-system框架
Go to file
2023-10-09 15:03:26 +08:00
debug 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +08:00
examples 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +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 修改World、Entity等接口,直接导出donburi对应定义,不再自己包装 2023-10-09 14:21:24 +08:00
go.mod 导出donburi的filter,以后外部系统就不需要再依赖donburi包了 2023-10-09 11:12:05 +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
system.go 初始版本 2023-08-04 11:02:08 +08:00
world.go 注销耗时计算日志打印 2023-10-09 15:03:26 +08:00

ECS(Entity Component System)框架

框架暂时基于donburi实现

核心组件概念

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