我认为必须有一个我忽略的简单解决方案。我认为一个选择是 FrameBuffer但不确定是否是最好的。
我正在开发一款益智游戏,绘制时需要大量计算。在更新屏幕时,我已经尽可能多地进行尽可能少的计算,但其中一些我不能,或者删除起来会很麻烦。另一方面,大多数时候用户会在试图找出下一步行动时看着屏幕,而屏幕将显示静止图像。所以每秒运行渲染代码 60 次只是浪费电池。
在模型没有变化的情况下防止绘图的最简单方法是什么?有什么方法可以告诉 libGDX 在显示最后渲染的图像时暂时停止调用渲染,或者让我可以在其中绘制某种虚拟屏幕,然后将其绘制到屏幕上?
正如我所说,我知道 FrameBuffer,但看起来这个对象的用途比我想要实现的要复杂得多。
最佳答案
使用非连续渲染仅按需渲染。有详细说明here in the documentation.
最基本的做法是将它放在onCreate()
Gdx.graphics.setContinuousRendering(false);
Gdx.graphics.requestRendering();
然后在您的代码中,每当需要新帧时调用requestRendering()
(例如响应用户输入,或在动画发生时连续调用)。
每当发生输入操作时,Gdx.graphics.requestRendering()
都会代表您调用一次,因此您的输入处理器和其他任何东西都会受到影响。如果他们对输入做出任何反应,他们也应该调用它。
关于android - 通过不在每次渲染调用上绘制来节省电池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36902877/