|
|
发表于 2007-7-12 10:37:00
|
显示全部楼层
Re:在MFC下实现游戏循环
hahah.....
我曾经也有这样的疑问终于有人和我一样的问题出现了,我就把我的经验共享把。
1,CWinApp::OnIdle()重载:
{
GameMain();
return FALSE;
}
2,直接改写CWinApp::Run():
具体的代码我忘了,参数有些对不上,请见谅。msg好象要用其他东西代替,忘了
{
while(1){
if( !PeekMessage(&msg,NULL,NULL,NOT_REMOVE)){
if(mag==WM_QUIT){
ExitInstance();
}
GameMain();
}
if(PeekMessage(&msg,NULL,NULL,NOT_REMOVE)){
if(!GetMessage(&msg,NULL,NULL...)){
ExitInstance();
}
::TranslateMessage(&msg);
: isptchMessage(&msg);
}
}
可以减少原来的Run中间的很多麻烦事,如果用别的方法还是不行,在Andre Lamothe书上的游戏loop我试 过,不行。
3.用计数器方式,就是SetTimer()函数,在初始的时候设置,具体的代码忘了,可以查书,我看见的一个MFC中的openGl sample有代码示例,在MSDN上面,一看就懂。
目前为止,我只知道这些方法产生loop。不知道对你有没有用。 |
|