VC++游戏编程之定时器.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC游戏编程之定时器

一、定时器 Timer定时器对象可以再每隔一段时间发出一个时间消息,程序收到消息后,就可以执行一些操作。比如,可以设置定时器来播放静态的连续图片,就可以产生动画效果。这也是通常显示动画的一种方式。 Windows API中有这样的函数:SetTimer()为我们定义一个定时器。函数原型: UINT_PTR?SetTimer(?? ??HWND?hWnd,??????????????//?窗口句柄?? ??UINT_PTR?nIDEvent,??????//?定时器代号?? ??UINT?uElapse,???????????//?时间设定的值,单位为毫秒?? ??TIMERPROC?lpTimerFunc???//?定时器响应函数?? );?? UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器代号 UINT uElapse, // 时间设定的值,单位为毫秒 TIMERPROC lpTimerFunc // 定时器响应函数 ); 这里举一个小例子: SetTimer(hwnd,??????????????????//?窗口句柄??? ?????????IDT_TIMER1,????????????//?代号?? ?????????10000,?????????????????//?10秒?? ????????(TIMERPROC)?NULL);??????//?没有响应函数?? ??? SetTimer(hwnd,??????????????? ?????????IDT_TIMER2,?????????????? ?????????5000,?????????????????? ????????(TIMERPROC)?NULL);??????? ?? case?WM_TIMER:??? ????switch?(wParam)??? ????{??? ????????case?IDT_TIMER1:??? ????????????//?执行10秒的操作?? ?????????????return?0;???? ????????case?IDT_TIMER2:??? ????????????//?执行5秒的操作?? ????????????return?0;??? }?? SetTimer(hwnd, // 窗口句柄 IDT_TIMER1, // 代号 10000, // 10秒 (TIMERPROC) NULL); // 没有响应函数 SetTimer(hwnd, IDT_TIMER2, 5000, (TIMERPROC) NULL); case WM_TIMER: switch (wParam) { case IDT_TIMER1: // 执行10秒的操作 return 0; case IDT_TIMER2: // 执行5秒的操作 return 0; } 创建后自然需要删除定时器。KillTimer()就是用来终止某个定时器的BOOL?KillTimer(?? ??HWND?hWnd,??????????//?窗口句柄?? ??UINT_PTR?uIDEvent???//?定时器代号?? );?? BOOL KillTimer( HWND hWnd, // 窗口句柄 UINT_PTR uIDEvent // 定时器代号 ); ? 运用定时器使预先做好的连续的静态图片播放,形成动画的效果。 新建Win32程序,在V中默认使用默认的生成窗口的代码。 接下来,在程序头部添加全局变量: HBITMAP?girl[7];?//?用于7张人物的位图数组?? HDC?mdc,hmdc;?? int?num;?//?用于计数循环?? HBITMAP girl[7]; // 用于7张人物的位图数组 HDC mdc,hmdc; int num; // 用于计数循环 ? 在InitInstance()函数中添加代码: BOOL?InitInstance(HINSTANCE?hInstance,?int?nCm

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档