Cocos2d-x学习笔记(三)main方法

0. UNREFERENCED_PARAMETER(X)避免编译器关于未引用参数的警告。

下边代码用于屏蔽单个函数的警告:

#pragma warning( push )
#pragma warning( disable : 4100 )
void DoSomething(...){}
#pragma warning( pop )

1. AppDelegate app创建app代理。

2. CCEGLView* eglView = CCEGLView::sharedOpenGLView(),获取GLView的指针。

3. eglView->setViewName("FirstGame")创建View的名字,叫“FirstGame”。

4. eglView->setFrameSize(480, 320)设置FrameSize。

5. CCApplication::sharedApplication()->run()正式开始运行应用。

int CCApplication::run()
{
    PVRFrameEnableControlWindow(false);

    // Main message loop:
    MSG msg;
    LARGE_INTEGER nFreq;
    LARGE_INTEGER nLast;
    LARGE_INTEGER nNow;

    QueryPerformanceFrequency(&nFreq);
    QueryPerformanceCounter(&nLast);

    // Initialize instance and cocos2d.
    if (!applicationDidFinishLaunching())
    {
        return 0;
    }

    CCEGLView* pMainWnd = CCEGLView::sharedOpenGLView();
    pMainWnd->centerWindow();
    ShowWindow(pMainWnd->getHWnd(), SW_SHOW);

    while (1)
    {
        if (! PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
            // Get current time tick.
            QueryPerformanceCounter(&nNow);

            // If it's the time to draw next frame, draw it, else sleep a while.
            if (nNow.QuadPart - nLast.QuadPart > m_nAnimationInterval.QuadPart)
            {
                nLast.QuadPart = nNow.QuadPart;
                CCDirector::sharedDirector()->mainLoop();
            }
            else
            {
                Sleep(0);
            }
            continue;
        }

        if (WM_QUIT == msg.message)
        {
            // Quit message loop.
            break;
        }

        // Deal with windows message.
        if (! m_hAccelTable || ! TranslateAccelerator(msg.hwnd, m_hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

    return (int) msg.wParam;
}

 

posted @ 2014-12-28 13:00  motein  阅读(318)  评论(0编辑  收藏  举报