Cocos2d-x示例代码学习(1)
来源:互联网 发布:隔骨算法算男女准吗 编辑:程序博客网 时间:2024/04/29 11:18
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类为示例程序的控制类,将在下一部分进行分析。
0 0
- Cocos2d-x示例代码学习(1)
- cocos2d-x示例学习(1)之开篇
- Quick-Cocos2D-X学习(一)下载Quick-Cocos2D-X 并成功运行示例代码
- Cocos2d 3.x 代码示例1(个人理解)
- Cocos2d-x 2.0.1 学习tests示例(二)ActionsTest
- Cocos2d-x基础示例-精灵移动1
- cocos2d-x box2d 示例
- Cocos2d-x使用Javascript开发js绑定C++<代码示例>
- Quick-Cocos2D-X 并成功运行示例代码
- Quick-Cocos2D-X 并成功运行示例代码
- Cocos2d 3.x 代码示例2(个人理解TMX)
- cocos2d-x 3.0 示例代码分析3:BaseTest
- Quick-Cocos2D-X 并成功运行示例代码
- [cocos2d-x 学习] 初探 HelloWorld 工程代码
- Cocos2d-x学习(1) - cocos2d环境配置
- Cocos2d-x 2.0.1 学习tests示例(一)Manual Transformation
- cocos2d-x过程动作CCProgressTo示例学习笔记
- [cocos2d-x菜鸟学习记录]解析示例helloWorld(上)
- 广搜专题-1002
- 第62讲scala 隐式参数实例解析
- Github for Windows
- Linux僵尸进程的解决
- 【树形dp】hdu 1011 Starship Troopers
- Cocos2d-x示例代码学习(1)
- Hive自定义函数(UDF、UDAF)
- Linux下安装opencv
- 温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对)
- JDBC连接MySql数据库
- 痛并快乐着
- 协程 及 Libco 介绍
- Hibernate 主键生成策略(Annotation)
- LeetCode之Maximal Rectangle