从逻辑上讲,我的游戏可以分为两个共存的部分:
Actors
)进入,退出和互动的实际游戏。Actors
也可以)出现在屏幕上的任何地方并且是动态的。第1部分中的Actors
不与第2部分中的Actors
互动,反之亦然。
目前,我已将这两个部分实施为Stages
并且效果很好。主循环基本上如下所示:
public void render(float delta) {
// ...
mainStage.act();
mainStage.draw();
metaStage.act();
metaStage.draw();
}
分离成两个Stages
只是为了清洁和逻辑代码。我的问题是我是否付出了高性价比?即,以两个stages
而不是一个来吸引一定数量的演员,是否更加昂贵,表现明智?
答案 0 :(得分:1)
几乎没有任何性能影响。可能是一个额外的绘制调用,因为第一个阶段在第二个阶段开始绘制之前被刷新。如果您使用按钮(可以通过调用.setTransform(false)
来减少),您可能已经为UI进行了大量的绘制调用。如果保留一个Button或Table,其默认值为transform,那么它们每个都会导致批量刷新。
如果让每个阶段都拥有自己的SpriteBatch,则可能会浪费内存。但是,通过实例化SpriteBatch并将其传递给两个阶段的构造函数,可以轻松避免这种情况。