gpt4 book ai didi

java - 实体组件系统中的边界和位置

转载 作者:行者123 更新时间:2023-12-02 09:24:01 25 4
gpt4 key购买 nike

我正在开发一个主要使用 ECS(不是纯 ECS)的游戏引擎,但我遇到了问题。

某些实体需要 Bounds 组件(例如,具有表示位置、宽度和高度的 Rectangle 的组件)。就像按钮一样。许多实体还需要一个包含位置但不一定包含边界的组件。

如何协调重叠?

1) 如果一个实体同时具有 Bounds 组件和位置组件,则将有两个位置。不好

2)实体只有Bounds组件,它继承自位置组件。丑陋的是因为我必须重写位置组件中的诸如 translate 之类的实用方法,并让它更新边界对象的位置。而且实体将不会有位置组件,这很奇怪。

3) Bounds 组件仅包含宽度和高度。我不喜欢这样,因为这样我就不能使用诸如 Rectangle 类之类的东西来表示边界。

有什么想法吗?谢谢。

最佳答案

我会选择 3,如果您有 Bound 组件并在本地框架中表达边界,则需要有 Transform 组件。

使用带有左下角和右上角的矩形仍然有意义,因为边界的原点并不总是与组件的原点相同。

关于java - 实体组件系统中的边界和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58469955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com