• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            專職C++

            不能停止的腳步

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            #

            因?yàn)轫?xiàng)目的原因,需要用游戲引擎HGE,于是分析了一下。

            總結(jié):簡(jiǎn)單有效,但也過(guò)于簡(jiǎn)單了,下面是System_Start的注釋!

            bool CALL HGE_Impl::System_Start()

            {

                MSG    msg;

                POINT  pt;

                RECT   rc;

             

                
            if(!hwnd)  //如果系統(tǒng)沒(méi)有初始化

                {

                   _PostError(
            "System_Start: System_Initiate wasn't called");

                   
            return false;

                }

             

                
            if(!procFrameFunc)  //如果幀函數(shù),沒(méi)有實(shí)現(xiàn)

                { 

                   _PostError(
            "System_Start: No frame function defined");

                   
            return false;

                }

             

                bActive
            =true;  //HGE進(jìn)入活動(dòng)狀態(tài)

             

                
            for(;;)

                {

                   

                   
            if(!hwndParent) //如果沒(méi)有父句柄

                   {

                       
            if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))

                       { 

                          
            if (msg.message == WM_QUIT) break;

                          
            // TranslateMessage(&msg);

                          DispatchMessage(
            &msg);

                          
            continue;

                       }

                   }

                    
            //取光標(biāo)的位置,這個(gè)光標(biāo)是屏

                   GetCursorPos(
            &pt);

                    
            //取客戶端區(qū)域

                   GetClientRect(hwnd, 
            &rc);

                    
            //當(dāng)光標(biāo)切換為當(dāng)前窗口所對(duì)應(yīng)的坐標(biāo)

                   MapWindowPoints(hwnd, NULL, (LPPOINT)
            &rc, 2);

                    
            //判斷鼠標(biāo)是否在當(dāng)前窗口

                   
            if(bCaptured || (PtInRect(&rc, pt) && WindowFromPoint(pt)==hwnd)) bMouseOver=true

                   
            else bMouseOver=false;

                    
            //

                   
            if(bActive || bDontSuspend) 

                    {

                       
            do 

                        { 

                            dt 
            = timeGetTime() - t0; //t0以來(lái)經(jīng)過(guò)的毫秒數(shù),要確定要超過(guò)ms退出(相當(dāng)于等待ms)

                        } 

                        
            while(dt < 1);

             

                       
            if( dt >= nFixedDelta ) //如果到了幀的時(shí)間

                       {

                          fDeltaTime 
            = dt / 1000.0f;

                          
            if( fDeltaTime > 0.2f ) //如果超過(guò).2秒

                          {

                              
            if(nFixedDelta) fDeltaTime = nFixedDelta/1000.0f;

                              
            else fDeltaTime = 0.01f;

                          }

             

                          fTime 
            += fDeltaTime;  //累計(jì)游戲的時(shí)間

             

                           t0 
            = timeGetTime();   //當(dāng)前幀處理的時(shí)間

             

                          
            if( t0 - t0fps < 1000) cfps++//小于毫秒時(shí),幀數(shù)加

                          
            else //如果超過(guò)毫秒時(shí)

                            {

                                nFPS 
            = cfps;   //設(shè)置當(dāng)前秒幀計(jì)數(shù)

                                cfps 
            = 0;      //計(jì)數(shù)器清

                                t0fps 
            = t0;    //重設(shè)計(jì)數(shù)時(shí)間

                            }

             

                            
            if( procFrameFunc() ) break;            //執(zhí)得幀

                          
            if( procRenderFunc ) procRenderFunc();  //如果有渲染,則執(zhí)得渲染

                          
            if( hwndParent ) break

                          _ClearQueue();

             

                          
            if(!bWindowed && nHGEFPS == HGEFPS_VSYNC) Sleep(1);

                       }

                       
            else 

                        { 

                            
            if(nFixedDelta && dt+3 < nFixedDelta) Sleep(1); 

                        }

                   }

                   
            else Sleep(1);

                }

                _ClearQueue(); 
            //清除沒(méi)有處理的事件

                bActive
            =false;

                
            return true;

            }


            本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http:
            //blog.csdn.net/zdhsoft/archive/2009/04/24/4106748.aspx
            posted @ 2009-09-19 23:35 冬瓜 閱讀(2404) | 評(píng)論 (6)編輯 收藏

                 摘要: 在新發(fā)布的C++Builder 2010中,已經(jīng)帶了boost 1.39,安裝的時(shí)候,選上就可以了。
            總的來(lái)說(shuō),C++ Builder 2010這點(diǎn)是做的不錯(cuò)的,省了我們?yōu)榱耸褂胋oost,要自己下載,并長(zhǎng)時(shí)間的編譯所帶來(lái)的痛苦。最重要的是,還不一定成功。  閱讀全文
            posted @ 2009-09-01 17:47 冬瓜 閱讀(5743) | 評(píng)論 (7)編輯 收藏

                 摘要: 八月下旬,Embarcadero RAD Studio 2010 終于出來(lái)了,我下載了,試用了一下。找回了老的控件面板  閱讀全文
            posted @ 2009-08-31 12:11 冬瓜 閱讀(3759) | 評(píng)論 (5)編輯 收藏

            僅列出標(biāo)題
            共17頁(yè): First 9 10 11 12 13 14 15 16 17 
            无码国产69精品久久久久网站| 久久免费的精品国产V∧| 91精品国产91久久久久久青草| 久久精品成人国产午夜| 久久av高潮av无码av喷吹| 久久久久久国产a免费观看黄色大片| 最新久久免费视频| 久久99国产精品尤物| 青青草国产97免久久费观看| 亚洲中文字幕无码久久2020 | 久久亚洲精品人成综合网| 久久精品国产亚洲AV无码偷窥| 成人a毛片久久免费播放| 精品久久久久久久久免费影院 | 精品无码久久久久久尤物| 久久久艹| 久久久综合九色合综国产| 婷婷综合久久中文字幕蜜桃三电影| 国产女人aaa级久久久级| 国产精品无码久久综合| 久久久久久亚洲精品影院| 精品久久综合1区2区3区激情| 久久久久久久人妻无码中文字幕爆| 久久久精品无码专区不卡| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 天天综合久久一二三区| 香港aa三级久久三级| 国产精品一区二区久久| 久久夜色精品国产噜噜噜亚洲AV| 欧美久久天天综合香蕉伊| 国产69精品久久久久99| 99精品久久久久久久婷婷| 亚洲欧美日韩精品久久| 麻豆AV一区二区三区久久| 国产色综合久久无码有码| av色综合久久天堂av色综合在| 中文国产成人精品久久亚洲精品AⅤ无码精品| 99久久中文字幕| 国产成人香蕉久久久久| 日韩久久久久中文字幕人妻| 久久www免费人成精品香蕉|