我认为必须有一个简单的解决方案,我忽略了。我认为一个选项是FrameBuffer,但不确定是否是最好的。
我正在制作益智游戏,在绘制时需要进行密集计算。我在更新屏幕时尽可能少地完成了尽可能少的计算,但其中一些我无法做到,或者很难摆脱。另一方面,大多数时候用户在试图找出下一个动作时将看到屏幕,并且屏幕将显示静止图像。因此,每秒运行渲染代码60次只是浪费电池。
在模型中没有变化的情况下,最简单的防止绘图的方法是什么?有没有办法告诉libGDX在显示最后渲染的图像时暂时停止调用渲染,或者在某种虚拟屏幕中我可以绘制然后将其绘制到屏幕上?
正如我所说的,我知道FrameBuffer,但似乎这个对象意味着用于比我想要实现的更复杂的东西。
答案 0 :(得分:3)
使用非连续渲染仅按需渲染。详细说明here in the documentation.
最基本的事情是将其放在onCreate()
Gdx.graphics.setContinuousRendering(false);
Gdx.graphics.requestRendering();
然后在您的代码中,每当需要新帧时(例如响应用户输入,或者在动画发生时连续),请调用requestRendering()
。
无论何时发生输入操作,代表您调用Gdx.graphics.requestRendering()
一次,因此您的输入处理器和其他东西都会受到攻击。如果他们做出任何响应输入的事情,他们也应该称之为。