游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: sepriver

实时帧率问题

[复制链接]

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2007-9-13 02:19:00 | 显示全部楼层

Re:实时帧率问题

让我写代码吗?
  thisTime := GetTickCount;
  while (GetTickCount - thisTime) < 1 do
    ;
  ShowMessage(IntToStr(GetTickCount - thisTime);

呵呵,你修改原来的45毫秒说法了。
15毫秒完全可以用来实现 60FPS 的限速了。

要精确到1毫秒只能使用高性能计数器咯。

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2007-9-13 22:07:00 | 显示全部楼层

Re:实时帧率问题

还是补充说明一下:
(以下说明都是针对XP系统的)
GetTickCount只能精确到 16毫秒
QueryPerformanceFrequence
QueryPerformanceCount可以精确到 1毫秒,
不过如果用在多线程或者多处理器环境里,无法保证得到正确的数据。
所以,建议使用
timeGetTime
这个函数默认的精度是 5毫秒,不过根据系统的不同,精度能够进一步提高:
比如,在Core 2系统里,timeGetTime的精度就是 1毫秒。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 18:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表