• <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++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團(tuán)隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #

            因為項目的原因,需要用游戲引擎HGE,于是分析了一下。

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

            bool CALL HGE_Impl::System_Start()

            {

                MSG    msg;

                POINT  pt;

                RECT   rc;

             

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

                {

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

                   
            return false;

                }

             

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

                { 

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

                   
            return false;

                }

             

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

             

                
            for(;;)

                {

                   

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

                   {

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

                       { 

                          
            if (msg.message == WM_QUIT) break;

                          
            // TranslateMessage(&msg);

                          DispatchMessage(
            &msg);

                          
            continue;

                       }

                   }

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

                   GetCursorPos(
            &pt);

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

                   GetClientRect(hwnd, 
            &rc);

                    
            //當(dāng)光標(biāo)切換為當(dāng)前窗口所對應(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以來經(jīng)過的毫秒數(shù),要確定要超過ms退出(相當(dāng)于等待ms)

                        } 

                        
            while(dt < 1);

             

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

                       {

                          fDeltaTime 
            = dt / 1000.0f;

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

                          {

                              
            if(nFixedDelta) fDeltaTime = nFixedDelta/1000.0f;

                              
            else fDeltaTime = 0.01f;

                          }

             

                          fTime 
            += fDeltaTime;  //累計游戲的時間

             

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

             

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

                          
            else //如果超過毫秒時

                            {

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

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

                                t0fps 
            = t0;    //重設(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(); 
            //清除沒有處理的事件

                bActive
            =false;

                
            return true;

            }


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

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

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

            僅列出標(biāo)題
            共17頁: First 9 10 11 12 13 14 15 16 17 
            久久香蕉一级毛片| 久久久久亚洲av综合波多野结衣| 成人久久精品一区二区三区| 久久精品a亚洲国产v高清不卡| 久久综合狠狠综合久久激情 | 午夜视频久久久久一区| 99re久久精品国产首页2020| 无码国内精品久久综合88| 久久福利青草精品资源站| 国产色综合久久无码有码| 精品久久久久久久久久中文字幕| 日本人妻丰满熟妇久久久久久| 精品久久久久久久久久中文字幕| 久久久久亚洲精品无码蜜桃| 欧美日韩精品久久久久| 精品久久久久久无码中文字幕一区| 久久综合伊人77777| 久久97精品久久久久久久不卡| 一本色道久久综合狠狠躁| 亚洲国产精品久久久久| 久久精品人人做人人爽97| 久久精品国产99国产精品亚洲 | 亚洲精品午夜国产VA久久成人 | 亚洲欧美日韩久久精品第一区| 久久无码国产| 久久99精品久久久久久齐齐| 久久国产精品久久精品国产| 精品久久久久久亚洲| AV无码久久久久不卡蜜桃| 久久99国产综合精品免费| 亚洲AV无码久久精品狠狠爱浪潮| 久久婷婷国产剧情内射白浆| 久久99国产精品久久99小说 | 一级做a爰片久久毛片免费陪| 久久精品国产一区二区三区不卡 | 久久偷看各类wc女厕嘘嘘| 综合网日日天干夜夜久久| 亚洲精品乱码久久久久久自慰| 久久久久久国产精品免费无码| 国产69精品久久久久777| 久久精品国产精品国产精品污|