加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d学习(02)——CCApplication类中的run方法分析

发布时间:2020-12-14 19:28:48 所属栏目:百科 来源:网络整理
导读:CCApplication类中的run方法分析 1: int CCApplication::run() 2: { 3: PVRFrameEnableControlWindow(false); //windows相关的,不理会 4: 5: // Main message loop: message消息loop循环 6: MSG msg; 7: LARGE_INTEGER nFreq; 8: LARGE_INTEGER nLast; 9: L

CCApplication类中的run方法分析

 1: int CCApplication::run()
 2: {
 3:     PVRFrameEnableControlWindow(false);    //windows相关的,不理会
 4:
 5:     // Main message loop: message消息loop循环
 6:     MSG msg;
 7:     LARGE_INTEGER nFreq;
 8:     LARGE_INTEGER nLast;
 9:     LARGE_INTEGER nNow;
 10:     //WinBase.h中声明的两个函数,不用理会
 11:     QueryPerformanceFrequency(&nFreq);
 12:     QueryPerformanceCounter(&nLast);
 13:
 14:     //初始化cocos2d应用实例
 15:     // Initialize instance and cocos2d.
 16:     if (!applicationDidFinishLaunching())
 17:     {
 18:         //applicationDidFinishLaunching()函数在AppDelegate中实现
 19:         return 0;
 20:     }
 21:     //下面都是和windows窗口显示相关的,暂时不理会
 22:     CCEGLView* pMainWnd = CCEGLView::sharedOpenGLView();
 23:     pMainWnd->centerWindow();
 24:     ShowWindow(pMainWnd->getHWnd(),SW_SHOW);
 25:     //死循环,程序
 26:     while (1)
 27:     {
 28:         if (! PeekMessage(&msg,NULL,PM_REMOVE))
 29:         {
 30:             // Get current time tick.获取当前时间标记
 31:             QueryPerformanceCounter(&nNow);
 32:             //获取到的时间是绘制下一个帧的时间,就绘制。否则继续while循环
 33:             // If it's the time to draw next frame,draw it,else sleep a while.
 34:             if (nNow.QuadPart - nLast.QuadPart > m_nAnimationInterval.QuadPart)
 35:             {
 36:                 nLast.QuadPart = nNow.QuadPart;
 37:                 CCDirector::sharedDirector()->mainLoop();
 38:             }
 39:             else
 40:             {
 41:                 Sleep(0);
 42:             }
 43:             continue;
 44:         }
 45:
 46:         if (WM_QUIT == msg.message)
 47:         {
 48:             // Quit message loop.
 49:             break;
 50:         }
 51:
 52:         // Deal with windows message.
 53:         if (! m_hAccelTable || ! TranslateAccelerator(msg.hwnd,m_hAccelTable,&msg))
 54:         {
 55:             TranslateMessage(&msg);
 56:             DispatchMessage(&msg);
 57:         }
 58:     }
 59:
 60:     return (int) msg.wParam;
 61: }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读