在实体组件系统中保持多态

时间:2018-12-28 22:37:56

标签: c++ inheritance architecture polymorphism entity-component-system

我正在编写一个实体组件系统,但遇到了一个必须解决的常见问题:相互依赖的组件。我将使用一个示例:

假设您要制作一个商品组件,其中包含商品共有的数据(例如重量)。但是,如果要制造设备组件怎么办?任何一件设备也必须是一件物品,因此您将有两个从属组件。这种is-a关系似乎很适合继承,因此我制作了继承组件。

问题是,我现在需要两个“多态层”,而我编写的枚举标记系统不再起作用。此外,以后我可能会希望将该设备组件分为更多类型。

edit.Age = user.Age ?? new DateTime(1970,01,01);

那么,我该如何以多态方式设置和获取这些类型的组件?我想我可能有一大堆的if检查get_component方法中的标签,但这乍一看对我来说似乎是一个愚蠢的解决方案。

0 个答案:

没有答案