Cocos2d-x示例代码学习(1)

前端之家收集整理的这篇文章主要介绍了Cocos2d-x示例代码学习(1)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Cosos2d-x示例代码的主函数只干了一件事,即创建了一个应用程序实例:

// create the application instance
    AppDelegate app;
    return Application::getInstance()->run();

在run函数中主要完成了一些初始化工作,我们主要关心这段代码
// Initialize instance and cocos2d.
    if (!applicationDidFinishLaunching())
    {
        return 1;
    }

这里调用了一个函数applicationDidFinishLaunching(),该函数在AppDelegate类中进行实现。

AppDelegate类中包括四个主要的函数

void initGLContextAttrs()
函数用于初始化Open上下文属性,目前可以初始化六种属性:red,green,blue,alpha,depth,stencil,可根据自身需要在函数中进行更改。


bool applicationDidFinishLaunching()
应用程序启动后调用函数,主要提供了Director和Scene的初始化,用户可将程序所需的初始化代码放到该函数中。


void applicationDidEnterBackground()

当程序进入后台调用函数,主要工作是对程序进行暂停并对状态进保存。


void applicationWillEnterForeground()
当程序进入前台调用函数,主要工作是恢复程序进入后台时的状态并恢复程序的运行。


下面对示例程序中的applicationDidFinishLaunching()函数进行分析。

Configuration::getInstance()->loadConfigFile("configs/config-example.plist");
该段代码通过配置文件将配置读入程序,配置文件为xml格式,主要保存了帧率、是否在界面上显示帧率、OpenGL投影类型、PNG像素格式等等配置内容


// initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLViewImpl::create("Cpp Tests");
        director->setOpenGLView(glview);
    }

    director->setDisplayStats(true);
    director->setAnimationInterval(1.0 / 60);
该段代码初始化Cocos2d-x的Director,并获取到OpenGL的视口,将其与Director进行绑定。随后,启用了状态显示功能,并将帧率设置为60fps。


 auto fileUtils = FileUtils::getInstance();
    std::vector<std::string> searchPaths;
    
    if (screenSize.height > 320)
    {
        auto resourceSize = Size(960,640);
        searchPaths.push_back("hd");
<pre name="code" class="cpp">        ...
    }
    else
    {
        ...
    }

    fileUtils->setSearchPaths(searchPaths);
 该段代码根据屏幕分辨率的大小,对文件查找路径进行了设置,但屏幕尺寸的高度大于320时,认为其为高分辨率屏幕,将资源路径定位为高分辨率素材所在的文件夹,否则,认为其为标准屏幕,将资源路径定位为普通素材所在的文件夹。 
 


glview->setDesignResolutionSize(designSize.width,designSize.height,ResolutionPolicy::SHOW_ALL)
设置设计分辨率尺寸,ResolutionPolicy有三种:

[1] EXACT_FIT:当屏幕分辨率与设计分辨率比例不同时,强制拉伸(无黑边).
[2] NO_BORDER:当屏幕分辨率与设计分辨率比例不同时,等比例放大(无黑边)
[3] SHOW_ALL:当屏幕分辨率与设计分辨率比例不同时,等比例放大(有黑边)


// Enable Remote Console
    auto console = director->getConsole();
    console->listenOnTCP(5678);
打开控制台监听(Console模块用于远程调试)。


_testController = TestController::getInstance();
获取测试控制器,TestController类为示例程序的控制类,将在下一部分进行分析。 原文链接:https://www.f2er.com/cocos2dx/342105.html

猜你在找的Cocos2d-x相关文章