我正在开发一个主要使用 ECS(不是纯 ECS)的游戏引擎,但我遇到了问题。
一些实体需要一个组件(例如,具有表示位置、宽度和高度的Bounds
组件)。Rectangle
就像按钮一样。许多实体还需要一个包含位置但不一定包含边界的组件。
如何协调重叠?
1)如果一个实体同时具有Bounds
组件和位置组件,则将有两个位置。不好
2)实体只有Bounds
继承自位置组件的组件。丑陋的是因为我必须重写实用程序方法(例如translate
位置组件中的实用方法)并让它更新边界对象的位置。此外,实体将不会有位置组件,这很奇怪。
3)Bounds
组件仅包含宽度和高度。我不喜欢这样,因为这样我就不能使用类之类的东西Rectangle
来表示边界。
有任何想法吗?谢谢。
弑天下
相关分类