|
|
发表于 2009-12-8 22:00:00
|
显示全部楼层
Re: 游戏主循环的思考...
Game9D: 游戏主循环的思考...
while(TRUE)
{
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message == WM_QUIT)break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Game_Main();
}
不行!
这样的主循环不适合做游戏主循环。用作工具软件的主循环还可以。
为什么我这么说?
想想看,如果到了一个比较卡的场景(比如WOW里的沙塔斯城),FPS降低到15帧了。
这时,你要做“S+D+空格+鼠标右键+鼠标滑动”的操作,这个游戏能马上做出反应吗?
不能。
因为“S,D,空格,鼠标右键,鼠标滑动”这5个消息,在这个循环上要经过5次循环才能完成。。。[em6]
也就是说我这5个消息要等到1/3秒(5/15=1/3)之后才能完全输送给游戏。
你能忍受一个本地操作也会延迟1/3秒的游戏吗?
[em17] |
|