游戏开发论坛

 找回密码
 立即注册
搜索
楼主: snhun

讨论:效率最高的游戏循环,怎么写?

[复制链接]

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 14:27:00 | 显示全部楼层

Re:讨论:效率最高的游戏循环,怎么写?

你到底有没有做过游戏,没有做过就去做做看,少说话多做事,做过之后你就明白了。如果不是你的标题刚好对我胃口,我还懒得来看。
算了,我也懒得说了,留给其他人看吧,当我免费给你上了一课。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2007-5-23 14:39:00 | 显示全部楼层

Re: Re: Re:讨论:效率最高的游戏循环,怎么写?

nickzj: Re: Re:讨论:效率最高的游戏循环,怎么写?
那对于MainLoop是不是“不管有没有系统消息都要处理游戏循环”嘛

no!

是“把所有消息处理完,再去处理游戏过程”

可以肯定,我们两个之中,有一个人是错误的。

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2007-5-23 15:16:00 | 显示全部楼层

Re: Re: Re:讨论:效率最高的游戏循环,怎么写?

iron: Re: Re:讨论:效率最高的游戏循环,怎么写?


采用nehe的结构,有系统消息的时候不进入游戏循环,但是按你的这个结构,不管有没有消息都要进入游戏循环

不好意思,纠正一下,我看错了
我把while(有没有消息)看成if了,纯属失误,失误啊。让各位见笑了。
其实我的C++还可以

其实你这个结构和NEHE的结构本质上是一样的,没什么区别

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 15:38:00 | 显示全部楼层

Re: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?

snhun: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?


no!

是“把所有消息处理完,再去处理游戏过程”

可以肯定,我们两个之中,有一个人是错误的。


嗯,的确是可以肯定,你是错的。
你的语文真够烂的,“把消息处理完”和“有没有消息”冲突吗?
争论的焦点是“有没有消息都会去处理游戏逻辑”,不是“需不需要把消息处理完,再处理游戏逻辑”,你真是~~~,还找高手!!!高手都要遭你娃气死!!!

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 15:43:00 | 显示全部楼层

Re: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?

iron: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?


不好意思,纠正一下,我看错了
我把while(有没有消息)看成if了,纯属失误,失误啊。让各位见笑了。
其实我的C++还可以

其实你这个结构和NEHE的结构本质上是一样的,没什么区别

你没说错啊,对于MainLoop来说,本来就是“不管有没有系统消息都要处理游戏逻辑”啊,这个不是他写代码写成什么样,做游戏本来就该设计成这个样子,你不能因为系统多来几个消息,就把画面卡住啊。
没主见!!

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 15:45:00 | 显示全部楼层

Re:讨论:效率最高的游戏循环,怎么写?

Last One,实在不想和你们讨论一个语言问题了,好自为之吧,当你有一天有幸做一款游戏的时候,你就知道你的想法是多么的不科学了。其他的就不在多说了。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2007-5-23 16:14:00 | 显示全部楼层

Re: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?

iron: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?
不好意思,纠正一下,我看错了
我把while(有没有消息)看成if了,纯属失误,失误啊。让各位见笑了。
其实我的C++还可以

其实你这个结构和NEHE的结构本质上是一样的,没什么区别

你反应比较快。

区别只在于“用不用去运行 while(1)”
----------------------------------
NEHE的,每次处理系统消息,都要去运行 while(1)后在回来判断 if(有消息),然后再处理消息。所以处理 5 个消息时是:

while(1)
if(有消息){处理消息};
while(1)
if(有消息){处理消息};
while(1)
if(有消息){处理消息};
while(1)
if(有消息){处理消息};
while(1)
if(有消息){处理消息};

总共10个步骤,虽然每个步骤时间不一样长
--------------------------------------
我的代码是,每次处理系统消息,连 while(1)都不用去运行,直接 while(有消息){处理消息}。所以处理 5个消息时是:

while(1)
while(有消息){处理消息};
while(有消息){处理消息};
while(有消息){处理消息};
while(有消息){处理消息};
while(有消息){处理消息};

总共6个步骤
-----------

我敢保证,nickzj小弟弟还是没理解。[em2]

(现在的小孩子们思维能力太差了,编程序都是死记硬背的。
不是你的错,是教育惹的祸。)

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 16:43:00 | 显示全部楼层

Re:讨论:效率最高的游戏循环,怎么写?

小弟弟,你才说错了!
你的意思是:
1、有系统消息的时候处理系统消息,处理完了再处理游戏逻辑;(记住,这里处理了游戏逻辑)
2、没有系统消息的时候,就直接处理游戏逻辑。(记住,这里也处理了游戏逻辑)
对不对?如果你说不对的话,你真应该重新读哈小学。

请问,上面的这2点结合起来看,是不是“不管有没有系统消息都要处理游戏逻辑”?

你写那么多个while,除了显示你的无知以外,有啥子用?
都给你解释了MainLoop和非MainLoop的区别,你还要犟,我没说你的代码写错了,我是说你对“不管有没有系统消息都要处理游戏逻辑”说法错了。

你举的例子也不恰当,都给你说的,非MainLoop不能写成死循环,你的非MainLoop中的while(1)--注意看字是非MainLoop中的(我真怕你读不明白啊,对于你的理解能力),没有break,也没有return,那样只会是死循环,懂啥子叫死循环不啊?不懂就去翻书,不要再这里来丢脸!!

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 16:45:00 | 显示全部楼层

Re:讨论:效率最高的游戏循环,怎么写?

iron,你也是,明明说对的,不晓得你在想啥子??

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-5-23 16:49:00 | 显示全部楼层

Re: Re: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?

nickzj: Re: Re: Re: Re:讨论:效率最高的游戏循环,怎么写?



嗯,的确是可以肯定,你是错的。
你的语文真够烂的,“把消息处理完”和“有没有消息”冲突吗?
争论...

请你仔细读一哈,认不到字翻字典,不要偷换概念,我没有说你的第一段代码写错了。是纠正你对自己写的代码的错误理解。
但是你执意要错下去,也没关系,那是你的事。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 17:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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