ECS - 处理组件及具体的碰撞组件

我正在使用 C++ 编写一个游戏,并实现了一个 ECS 系统。

  1. 我有一个名为 EntityFactory 的类,用于创建并将实体存储在一个向量中。一个实体由组件地图组成。当系统正在进行逻辑运算时,我应该对每个实体以及其组件进行迭代,还是应该存储包含每个创建的组件引用的向量?

  2. 我有一个名为“CollisionComponent”的组件。我有点困惑如何使用碰撞系统执行碰撞更新。作为伪代码,我在考虑以下代码:

我很抱歉如果我格式不正确:

foreach(entity)

   rect collide = getComponent<CollisionComponent>().bounds

   for(loop through every other entity with collision component)

       if(rect.intersects(otherEntity)
          //do collide logic

我觉得这种方法效率低下。

感谢帮助!

点赞