游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3033|回复: 6

关于游戏循环的问题……大家帮解决一下~~

[复制链接]

3

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2006-11-10 00:53:00 | 显示全部楼层 |阅读模式
   //游戏循环
   while(msg.message!=WM_QUIT)
   {
     if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
         {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
         }
         else
         {
           tNow=GetTickCount();
           if(tNow-tPre>=12)
                   Game(hdc);
         }
   }



这个游戏循环……它在编译过程中没有报错,但一开始运行Run Time就报以下错误:

aa.exe 中的 0x77d2b6c8 处最可能的异常: 0xC0000005: 读取位置 0x00ee1000 时发生访问冲突 。
Run-Time Check Failure #3 - The variable 'msg' is being used without being defined.
程序“[4036] aa.exe: 本机”已退出,返回值为 0 (0x0)。





这个程序是我一本教程里来的,连教程带的源程序……也发生同样的错误,我把源程序放入附件大家帮看看~~~
PS:源程序是C++ 6.0的,我用的是VS2003……不知道是不是语法发生了改变……

sf_2006111005240.rar

484.39 KB, 下载次数:

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2006-11-10 08:00:00 | 显示全部楼层

Re:关于游戏循环的问题……大家帮解决一下~~

在 6.0中 一切正常。

3

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-11-10 08:58:00 | 显示全部楼层

Re:关于游戏循环的问题……大家帮解决一下~~

晕~~难道要我装回6.0不成……
有没有哪位是用VS2003或更高的……帮看看是不是我机子问题……谢谢~~~

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2006-11-10 09:18:00 | 显示全部楼层

Re:关于游戏循环的问题……大家帮解决一下~~

在while前面加句“PeekMessage(&msg,NULL,0,0,PM_REMOVE);”试试

3

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-11-10 10:53:00 | 显示全部楼层

Re:关于游戏循环的问题……大家帮解决一下~~

YES!问题解决!

但奇怪啊, 为什么6.0可以不用在前面加PeekMessage(&msg,NULL,0,0,PM_REMOVE);,而2003需要呢?获取消息的函数用法应该不会有所改变吧……?哎

4

主题

66

帖子

66

积分

注册会员

Rank: 2

积分
66
发表于 2006-11-10 11:15:00 | 显示全部楼层

Re:关于游戏循环的问题……大家帮解决一下~~

不同编译器是不一样的嘛.多少有点区别的.
我游戏循环还是喜欢用线程写.

23

主题

111

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2006-11-11 10:23:00 | 显示全部楼层

Re:关于游戏循环的问题……大家帮解决一下~~

用线成写,很高深的样子,什么原理啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 20:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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