我正在開(kāi)發(fā)一個(gè)主要使用 ECS(不是純 ECS)的游戲引擎,但我遇到了問(wèn)題。一些實(shí)體需要一個(gè)組件(例如,具有表示位置、寬度和高度的Bounds組件)。Rectangle就像按鈕一樣。許多實(shí)體還需要一個(gè)包含位置但不一定包含邊界的組件。如何協(xié)調(diào)重疊?1)如果一個(gè)實(shí)體同時(shí)具有Bounds組件和位置組件,則將有兩個(gè)位置。不好2)實(shí)體只有Bounds繼承自位置組件的組件。丑陋的是因?yàn)槲冶仨氈貙?xiě)實(shí)用程序方法(例如translate位置組件中的實(shí)用方法)并讓它更新邊界對(duì)象的位置。此外,實(shí)體將不會(huì)有位置組件,這很奇怪。3)Bounds組件僅包含寬度和高度。我不喜歡這樣,因?yàn)檫@樣我就不能使用類(lèi)之類(lèi)的東西Rectangle來(lái)表示邊界。有任何想法嗎?謝謝。
1 回答

弒天下
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
Transform
我會(huì)選擇 3,如果您有一個(gè)組件Bound
并在本地框架中表達(dá)邊界,則要求有一個(gè)組件。
Rectangle
使用帶有左下角和右上角的a仍然有意義,因?yàn)檫吔绲脑c(diǎn)并不總是與組件的原點(diǎn)相同。
添加回答
舉報(bào)
0/150
提交
取消