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: }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |