ECS框架 2.0

来源:互联网 发布:淘宝禁售 编辑:程序博客网 时间:2024/05/16 14:30
 简述ECS的工作原理:
        
        创建一个entity对象, 这只是一个标签 他和后面的 组件的是一个辈份, 用面对对象的方式去理解就是 它是一个家。
      
        新建一个移动组件 moveComponent和渲染组件 readerComponent , 这两个组件分别是记录 位置 x,y 和 sprite,
      
     (注: 为什么说是平辈, 因为他们都将存入map 数组中 map<std::string, std::map<Entity*, ECS::Component*>*>, entity只是一个区分每一个对象的标识)
       
        有了一个对象 和 他的 ui , 移动速度  , 因为他们是的是平辈 如何把它们关联在一起呢 这里有一个EntityManager 这个类就是把 entity 和 component 绑定起来 通过方法addComponentToEntity。

        现在一个对象算是完成了。因为这两个类管理比较严格 没有写逻辑的部分  , 这时候有一个system逻辑类 通过 moveSystem这个逻辑类 负责所有的移动逻辑部分, 它负责和外部沟通 , 通信;
        
        从这里就可以简单的看出 ecs 把数据和逻辑部分区分开来, component 是数据部分额 , system是逻辑部分 , 降低了 数据和逻辑的耦合性, 在我看来最大的好处就是  人物的行为动作更直观 需要让他移动只要加入 一句代码而已 , 不需要它移动只要屏蔽这条代码,这针对于不断该需求的游戏来说是一个解决办法。
0 0
原创粉丝点击