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

在libGDX中将Ashley与Scene2d一起使用?,libgdx,scene2d,Libgdx,Scene2d,我想使用Ashley,但我也想在Scene2d中使用动作和侦听器。我读到这不是一个好主意,但为什么?我可以用stage.act()创建一个系统吗;和stage.draw();在更新方法中,还是一个坏主意?谢谢。我想你不能说把Scene2D和像Ashley这样的ECS混在一起总是个坏主意。将Scene2D.UI用于用户界面,然后将Ashley用于其他一切可能会很有意义。正如您所指出的,没有任何技术原因可以解释为什么您不能将这两者结合在一起。这是一个基于您特定用例的判断 话虽如此,您通常不会同时使用

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

我想你不能说把Scene2D和像Ashley这样的ECS混在一起总是个坏主意。将Scene2D.UI用于用户界面,然后将Ashley用于其他一切可能会很有意义。正如您所指出的,没有任何技术原因可以解释为什么您不能将这两者结合在一起。这是一个基于您特定用例的判断

话虽如此,您通常不会同时使用Scene2D和Ashley的一个原因是它们有很多重叠。计算机科学的一个基本原则是“不要重复你自己”——不要重复构建同一个东西两次,当你构建某个东西时,确保使用尽可能少的部件。这包括避免使用不需要的库

如果你使用场景2D的动作来移动你的演员/实体,并且你使用舞台#draw()来绘制所有东西,那么Ashley还需要添加什么?可能不足以证明它增加的复杂性