在 libGDX 中将 Ashley 与 Scene2d 一起使用?

Use Ashley with Scene2d in libGDX?

我想使用 Ashley,但我也想在 Scene2d 中使用动作和侦听器。我读到这不是一个好主意,但为什么呢?我可以用 stage.act(); 创建一个系统吗?和 stage.draw();在更新方法中还是一个坏主意?谢谢

我认为您不能说将 Scene2D 和像 Ashley 这样的 ECS 混合使用总是一个坏主意。将 Scene2D.UI 用于您的用户界面可能会产生 很多 的意义,然后将 Ashley 用于其他一切。正如您所指出的,没有技术 原因不能将这两者结合在一起。这是根据您的特定用例做出的判断。

也就是说,您通常不会同时使用 Scene2D 和 Ashley 的原因之一是它们有很多重叠。计算机科学的基本原则之一是 "Don't Repeat Yourself"- 不要两次构建相同的东西,并且当你构建某些东西时,请确保使用尽可能少的部分。这包括避免使用不需要的库。

如果您使用 Scene2D 的动作来移动您的 actors/entities,并使用 Stage#draw() 绘制所有内容,Ashley 还需要添加什么?可能不足以证明它增加的复杂性。