ECS - 处理组件,特别是碰撞组件

时间:2018-03-28 23:01:37

标签: c++ lua

我正在使用c ++进行游戏并正在实施ECS系统。

  1. 我有一个类:EntityFactory,用于在向量中创建和存储实体。实体由组件映射组成。当一个系统在做逻辑时,我应该迭代每个实体,然后迭代它的每个组件,还是应该存储包含对每个组件的引用的向量?

  2. 我有一个名为“CollisionComponent”的组件。我对如何使用碰撞系统执行碰撞更新感到有些困惑。作为伪代码,我在想这个:

  3. 如果我格式化错误,我很抱歉:

    foreach(entity)
    
       rect collide = getComponent<CollisionComponent>().bounds
    
       for(loop through every other entity with collision component)
    
           if(rect.intersects(otherEntity)
              //do collide logic
    

    我觉得这是完成这项任务的低效方法。

    感谢您的帮助!

0 个答案:

没有答案