Cocos2d-x示例代码学习(1)
发布时间:2020-12-14 14:17:31 所属栏目:百科 来源:网络整理
导读:Cosos2d-x示例代码的主函数只干了一件事,即创建了一个应用程序实例: // create the application instance AppDelegate app; return Application::getInstance()-run(); 在run函数中主要完成了一些初始化工作,我们主要关心这段代码: // Initialize instan
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:当屏幕分辨率与设计分辨率比例不同时,强制拉伸(无黑边).
// Enable Remote Console auto console = director->getConsole(); console->listenOnTCP(5678);打开控制台监听(Console模块用于远程调试)。
_testController = TestController::getInstance();获取测试控制器,TestController类为示例程序的控制类,将在下一部分进行分析。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |