【发布时间】:2014-06-10 04:45:48
【问题描述】:
我正在探索 Go 和实体组件系统。我了解 ECS 的工作原理,我正在尝试复制似乎是 ECS 的首选文档,即 http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
为了提高性能,文档建议使用每种组件类型的静态数组。也就是说,不是组件接口数组(指针数组)。 Go 中的问题是循环导入。
我有一个包ecs,其中包含Entity、Component和System类型的定义/接口以及 EntityManager。另一个包 ecs/components 包含各种组件。显然,ecs/components 包依赖于ecs。但是,要在 EntityManager 中声明特定组件的数组,ecs 将依赖于 ecs/components,因此会创建循环导入。
有没有办法避免这种情况?我知道通常高级系统不应该依赖于低级系统。我还想指出,对于我的目的而言,使用指针数组可能足够快,但我对可能的解决方法感兴趣(供将来参考)
感谢您的帮助!
【问题讨论】:
标签: entity-system go