【发布时间】:2015-05-05 06:04:58
【问题描述】:
标题说明了一切。
使用相同的SpriteBatcher 对象调用多个Stages draw() 方法只发生在一个批次中还是一个Stage = 一个批次?
我有一种情况,我不想在游戏背景中使用演员,我只是直接绘制它。但算法看起来像这样。
- 开始批处理
- 绘制背景
- 结束批次
- 调用所有舞台抽奖
如果你的答案是:spritebatch 会在一批中绘制多个stage,那么我可以说将每个sprite 作为一个成员放入一个Actor 对象,然后将所有Actor 对象添加到Stage 对象中,这样效率更高,那么叫舞台抽奖。这样,我可以最大限度地减少开始批处理和结束批处理的调用,据我所知,这可以提高性能。
【问题讨论】:
-
现代低端手机可以在帧速率降至 60 FPS 以下之前进行大约 50 次绘制调用。当然,还有其他因素会影响这一点,但几乎可以肯定的是,为了节省一次绘图调用而使代码复杂化是不值得的。
-
附加信息。伟大的。谢谢。
-
另一件事。默认情况下,libgdx 中的按钮和表格也会导致批量刷新,因此除非您调用 setTransform(false);在它们上,只要您不打算缩放或旋转它们就可以了。如果你使用很多按钮,这些真的可以加起来。
标签: libgdx