小编Jar*_*rom的帖子

C++:设计基于组件的实体系统 - 高级问题

在我用C++编写的游戏引擎中,我已经离开了传统的分层实体系统,并构建了一个基于组件的系统.它大致以这种方式工作:

实体仅仅是组件的容器.一些示例组件是:Point,Sprite,Physics,Emitter.

每个实体最多可以容纳每种类型的一个组件.有些组件依赖于另一个组件,比如Physics和Sprite依赖于Point,因为它们需要一个位置和角度.

因此,组件系统的一切正常,但现在我无法实现更专业的实体,例如:

  • 相机,需要额外的功能来处理移动和缩放
  • 一个玩家,需要支持才能接收来自用户的输入并移动

现在,我可以通过继承轻松解决这个问题.只需从实体派生相机并添加其他缩放功能和成员.但这只是错了.

我的问题:

  • 如何用C++中的组件系统解决专用实体的问题?

c++ components entities

12
推荐指数
2
解决办法
9909
查看次数

标签 统计

c++ ×1

components ×1

entities ×1