我试图弄清楚如何最好地为我的游戏设置一种通用游戏元素类。我想尝试和创建的也是一个类似的结构..
GameElementPositionMovement(根类)->GameElementVisual(处理所有图形)->GameElementPersonality(处理游戏逻辑)
然后我希望能够通过创建 GameElementPersonality 的实例来设置不同的个性(怪物、英雄、图标等),但在它的构造函数中也能够设置视觉和定位/移动方面。
我在另一个问题中提到了这一点,然后回来的答案是......
您似乎需要一种“数据模型”类来存储逻辑和一个可视(“视图”)类。视觉类不应该从数据模型继承,它应该使用它。这是与 OOP 相关的问题:IS vs HAS(继承 vs 组合)
但我不确定我是否理解这一点。没有任何视觉数据的位置/运动,似乎是一个很好的第一个根类,然后添加视觉方面(GameElementVisual),最后添加个性“特征”(GameElementPersonality),如盔甲、伤害、健康等
因此,我将定位/运动、视觉和逻辑分开,并且我认为我所布置的层次结构将是做到这一点的最佳方式,但这不是一个好的方式吗?它应该更平坦吗?使用 GameElementPositionMovement,创建视觉和逻辑实例并将其存储在自身中?