小编Soo*_*ner的帖子

像C++一样编写高效的实体系统

我正在尝试用C++创建一个高效的"实体系统",我在互联网上阅读了很多博客/文章/文档以获取大量信息,但我又遇到了一些问题.

我发现了两个有趣的主题:

  • 数据驱动系统
  • 实体组件系统

对我来说,这两个系统看起来非常相似.

所以,我发现了Adam Smith的这个例子:https://stackoverflow.com/a/2021868

我需要一个像这样灵活的系统:

// Abstract class
class Component
{
     // data here
}

// exemple
class Car : public Component
{
    // Data here
}

// Entity with components
class Entity
{
   std::vector<Component*> components;
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我的实体有以下组件:Car,Transform,Sprite, 我的组件数组是否会有数据驱动系统等线性数据?

现在,我有系统:

class System 
{
     virtual void init();
     virtual void clear();
     virtual void update();

     std::unordered_map< const char*, Entity*> entities;
}

class RendererSystem : public System
{
    // Methods's definition (init, clear, …).

    void update()
    {
       for( …
Run Code Online (Sandbox Code Playgroud)

c++ architecture performance data-driven

5
推荐指数
1
解决办法
2232
查看次数

标签 统计

architecture ×1

c++ ×1

data-driven ×1

performance ×1