游戏开发论坛

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

问一个代码中 计时器的问题,急

[复制链接]

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2007-9-9 15:07:00 | 显示全部楼层

Re:问一个代码中 计时器的问题,急

在主函数里:
.............省略
        while(true)
        {
                if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
                {
                        if(msg.message == WM_QUIT)
                        {
                                break;
                        }
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                }
                else
                {
                        Render();
                }
        }
..................省略
其中Render()中会调用一个函数 void fun();
但需要6秒才能调一次这个fun(); 要不就只执行fun()以外的函数;
Render()
{
if(6秒)fun();
fun2();
fun3();
......
}

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-9 15:10:00 | 显示全部楼层

Re:问一个代码中 计时器的问题,急

。。。你开始也不说清楚,我以为你不是指主循环。

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2007-9-9 15:20:00 | 显示全部楼层

Re:问一个代码中 计时器的问题,急

晕, 是我没说清楚哈, 那么我需要实现这个要怎么做啊?

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-9 15:22:00 | 显示全部楼层

Re:问一个代码中 计时器的问题,急

呵呵,你上面那样就可以了。

6

主题

47

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2007-9-9 16:24:00 | 显示全部楼层

Re: Re:问一个代码中 计时器的问题,急

WaveBit: Re:问一个代码中 计时器的问题,急

static DOWRD time1 = timeGetTime();
static DOWRD time2 = timeGetTime();
static DWORD R     = 0;
w...

纠正下,这样写(%6000 == 0)有BUG。

5

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2007-9-10 15:33:00 | 显示全部楼层

Re:问一个代码中 计时器的问题,急

C++ win32里面本身就有一个计时器,他会不断的循环,当计时当设定值的时候就会发送一个WM_TIMER的消息 何必呢么麻烦
在开始计时的时候  SetTimer(hwnd , 1 , 6000);(具体什么参数有点忘了,1就是时钟的序号,表示1号时钟,你可以设置多个时钟的,最好还是查下MSDN,我记得不是很准确)
然后在WndProc里面
switch(msg)
{
...............
case WM_TIMER :
...........//你需要执行的操作 或者用Bool变量做一个开关
break;
................
case WM_DESTORY :
killTimer(hwnd);
......................//其他销毁控件以及发送退出消息循环的指令等等
break;
}

这样就好了 [em13] [em13]

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-10 21:45:00 | 显示全部楼层

Re: Re:问一个代码中 计时器的问题,急

jojohello: Re:问一个代码中 计时器的问题,急

C++ win32里面本身就有一个计时器,他会不断的循环,当计时当设定值的时候就会发送一个WM_TIMER的消息 何必...


这个方法不通用,不适合需要多个计时器的情况。

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-9-10 23:26:00 | 显示全部楼层

Re:问一个代码中 计时器的问题,急

可以参看linux代码的系统计时器部分,个人认为还不错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-21 22:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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