Cocos2dx在循环中更新屏幕,无论是否有新的东西要绘制。 即使我有一个没有动画的精灵,也会调用opengl渲染器并以60 fps的速度恢复屏幕 - 因此手机电池放电速度非常快。
是否可以仅在必要时重绘屏幕(例如,当精灵动画时)?
答案 0 :(得分:2)
不是真的。如果没有节点返回“状态已更改”标志,您可以破解引擎不清除帧缓冲区。
然而,所有游戏引擎都会在每一帧中绘制所有内容 - 甚至是静止图像。没有重绘不会赢得任何东西,除了一点电池。但是,如果“更改”状态未正确更新,则可能会出现故障,此外还会检查更改后的状态会增加不必要的开销。因此:这在理论上是可行的,这样做是不明智的。
您可以降低帧速率(暂时或完全通过导演animationInterval)或暂停导演以在游戏未更新时节省能量,但这会引入输入延迟。另一种方法是在本机UI框架中实现游戏,特别是如果你的游戏无论如何都是空闲的。