C#开发的OpenRA游戏帧计时的实现
游戏里显示每个画面,都是通过实进渲染进行的。
由于这个渲染是非常费CPU和GPU的,
也就是说非常费电的,如果这个不控制好,使用最高的帧率,
那么电脑就变成了暖气机,CPU和GPU就非常发热。
一般情况下,人的眼睛只有超过24帧每秒,就已经感觉不出来画面是否不连续了。
达到60帧,已经没有任何差别。达到120帧,那是浪费过度了。
所以游戏帧速度,就需要使用一个时间来计数,如果超过60帧之后,就要增加延时,
这样就可以降低CPU和GPU的运算,让电脑少费点电,多多节能,这样也能社会起到很好的环保作用。
因此,软件开发人员也是为社会的能源消耗作出很大的贡献。
特别游戏的界面渲染时,可以把帧率降到很低,每秒钟几帧就可以了。
比如下面这段代码:
public override void Display()
{
// Limit load screens to at most 5 FPS
if (Game.Renderer == null || (lastUpdate != null && lastUpdate.Elapsed.TotalSeconds < 0.2))