【发布时间】:2020-02-16 13:52:58
【问题描述】:
我正在开发一个主要使用 ECS(不是纯 ECS)的游戏引擎,但遇到了问题。
某些实体需要Bounds 组件(例如,具有代表位置、宽度和高度的Rectangle 的组件)。像按钮。
许多实体还需要一个包含位置但不一定包含边界的组件。
如何协调重叠?
1) 如果一个实体同时具有Bounds 组件和位置组件,则将有两个位置。不好
2) 实体只有Bounds 组件,它继承自位置组件。丑陋,因为我必须从位置组件中覆盖像translate 这样的实用程序方法,并让它更新边界对象的位置。而且实体不会有位置组件,这很奇怪。
3) Bounds 组件只包含宽度和高度。我不喜欢这样,因为这样我就不能使用 Rectangle 类之类的东西来表示边界。
有什么想法吗?谢谢。
【问题讨论】:
标签: java game-engine entity-component-system