游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 小学者

请教:如何用fps控制游戏速度?

[复制链接]

8

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2004-10-14 21:31:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

找到答案了,TimeGetTime()是正解~
明天写代码。

21

主题

170

帖子

170

积分

注册会员

Rank: 2

积分
170
QQ
发表于 2004-10-14 21:40:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

应该还是我的版本精度最高,好像是VC下能达到的最大精度.
也许有一些其它更底层的方法得到更大时间精度(不知道存在不..),但这个精度好像非常不错了,时实性要再高就不能用PC了,用其它硬件吧(我想...).
不是说能取到毫秒就精确到毫秒的.

17

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
QQ
发表于 2004-10-14 22:23:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

//例如将FPS限制在33帧的方法
while(TRUE)
{
    DWORD start_time = GetTickCount();
    if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
    {
       if (msg.message == WM_QUIT)
           break;
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    } // end if
    int x1=rand()/Screen_widht,y1=rand()/Screen_Height;
    MoveToEx(hdc, x1,y1, NULL);
    LineTo(hdc,x2,y2);
    while((GetTickCount() - start_time) < 33);
}

11

主题

1265

帖子

1265

积分

金牌会员

Rank: 6Rank: 6

积分
1265
发表于 2004-10-14 22:29:00 | 显示全部楼层

Re: 请教:如何用fps控制游戏速度?

大家都很厉害啊 [em4]

8

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2004-10-15 14:51:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

2GOU的方法有点看不懂,怎么个用法?

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2004-10-15 16:52:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

就是在一个循环中再套一个循环,不断检测时间,如果达到规定值就终止循环,如果没有就继续DoEvents。

下面是用VB写的代码:
Dim Time1 as long
Dim Time2 as long

Time2=1000/60  '这个60就是FPS值
Do
Time1=TimeGetTime
'时间控制循环
Do while TimeGetTime - Time1<Time2
  DoEvents
Loop

'这里放游戏循环主体
Loop

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2004-10-15 16:58:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

当然,实际使用时会发现,有时设定FPS和计算出来的实际FPS不一样,也就是设定的FPS只是理论上,因为绘图函数也要需要时间。不过,这个是控制FPS的最简单的方法,而且十分有效。

如果想真正达到较高精度,一是改进上述方法,凭经验预留一个“延迟值”,二就是使用另外的方法:比如设定两个独立循环,分别控制绘图和时间。

8

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2004-10-18 16:15:00 | 显示全部楼层

Re: Re:请教:如何用fps控制游戏速度?

hotcat: Re:请教:如何用fps控制游戏速度?

//例如将FPS限制在33帧的方法
while(TRUE)
{
    DWORD start_time = GetTickCount();
    if(PeekMess...


我用了这个方法。
timeGetTime()还需要Link一个库,麻烦~[EM20]

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2004-10-18 17:09:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

你用d3d就不link库了?困惑中……最好应该是处理自己的事件一个循环,绘图另用一个循环。
=========
再问:如果想像cs那样既控制游戏速度又能提高fps,有什么办法没有?

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2004-10-18 17:11:00 | 显示全部楼层

Re:请教:如何用fps控制游戏速度?

就是说,不会出现机器速度一快游戏的各个速度都快了,让人反应不过来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-22 21:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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