zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    C# Thread Lambda
    C#中Invoke的用法
    C#抽象类和抽象方法
    SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用
    改变自己的128种方法
    小技巧
    Linux学习第一章作业.zxs
    Linux学习第二、三章作业.zxs
    Linux 系统管理 04—账号管理
    Mysql中的in和find_in_set的区别?
  • 原文地址:https://www.cnblogs.com/AmitX-moten/p/4189849.html
Copyright © 2011-2022 走看看