android - 通过不在每次渲染调用上绘制来节省电池

标签 android graphics libgdx

我认为必须有一个我忽略的简单解决方案。我认为一个选择是 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/

相关文章:

Android GridLayout 只显示最后一个 child

java - 更改 nav_header_main 中的背景

java - 使用drawOval()方法绘制椭圆

ios - Objective-C 初始化方法在 Libgdx 中初始化 UNNotificationAttachment 类时返回 nil

LibGdx:如何在 Actor 上实现手势

css - GWT 中使用 CSS 自定义鼠标光标

python - Kivy 禁用屏幕超时

java - 图形和小程序

ios - 复数应用程序 - 使用核心图、幂图或其他绘图?

Android - 如何清除 textView?