当前位置:福雨世界文章首页游戏开发综合文章→游戏中限制帧速的新方法  
审计 干洗 投资 创业 加盟 连锁 礼仪 水泵 手机 电脑
美容 整形 婚庆 搬家 旅游 交友 房产 鲜花 美女 房产
最新热门文章 本类热门文章

游戏中限制帧速的新方法  


作者:不祥  来源于:网络  发布时间:2005-10-7
>

以前很多资料介绍的方法都是使用GetTickCount/或者是多媒体定时器,来轮训时间,精度确实不错。
但是这样会造成cpu时间的极大浪费,一个主要表现就是在nt/2000环境中后台程序反应极慢。
如果可以使用像win32 waitobject之类的方法来实现,那么在等待时间消息时,线程挂起,cup资源浪费较少。这样就不会出现后台程序挂起的问题了。

幸运的是,win32在98以后的版本都提供了waitable timer来等待time event。
具体使用方法请参考msdn。

这里要说的是,waitable timer默认的精度是1/50秒,达不到60fps的要求。
查阅msdn也没有发现有可以设置时间精度的函数。

后来在一个偶然的机会我发现timerBeginPeriod()函数设置多媒体时间精度会影响到Waitable timer。
猜想Waitable timer内部是使用了多媒体时钟来实现的。
通过设置timerBeginPeriod(8)就可以得到每秒60的时间消息了。
更大的值会使得cpu占用大大提高,所以建议只要设置到需要的精度即可。

 


[ ] [ 字体: ] [回上一页] [告诉好友] [评论] [打 印] 上篇文章:DevelopYour3DEnginePart2   
下篇文章:五子棋的原代码  
关于本站 - 下载声明 - 软件发布 - 下载帮助