有了个大概的总览后,自然而然就有了个做个实际的小游戏出来的想法。但是这个想法付诸实施之前,还需要了解cocos2dx具体有那些功能。一本教材只是让我们了解入门的东西,更加强大的功能还是需要更多的了解。那怎么了解cocos2dx的功能呢,就如ogre有相应的功能演示示例,cocos2dx也有对应的功能演示示例,那就是TESTCPP。由于android环境无法启动模拟器运行,所以学习这个演示示例以及查看代码我决定通过VS环境来进行。
首先让我们从整个程序的入口AppDelegate.cpp开始.在DidFinishLaunching接口里面,我们看见首先程序读取了个config文件,然后实例化director,以及关联显示主窗口,接下来根据当前屏幕情况设置参数。我们注意到资源文件的放置是在工程根目录下resources文件夹对应的目录里面,但设置路径参数的时候并没有包括resources路径,回想一下,TestCpp运行在WIN32和ANDROID窗口大小是不一样的,所以这几段代码大概可以给我们如何设置高分辨率做一个提示。仔细看其中代码,其核心在于几行代码:
pDirector->setContentScaleFactor(resourceSize.height/designSize.height);
pFileUtils->setSearchPaths(searchPaths);
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);
其中pfileutils是全局的资源路径,通过简单的判断,设置对应不同分辨率下读取的资源路径。不同屏幕大小searchPaths的值是不一样的。关于pDirector->setContentScaleFactor与CCEGLView::sharedOpenGLView()->setDesignResolutionSize,详细的介绍大家可以参考这里:http://cocos2d-x.org/wiki/Multi_resolution_support/diff/16。
http://www.2cto.com/kf/201212/175527.html
我的大致理解是:TestCpp是在480X320的分辨率下设计的(designSize)的,但是现在要在一个960X640的设备上运行(SceneSize),为此,我准备了一套960X640的更加精细的资源(resourceSize),需要程序运行时针对性读取(setSearchPaths),除此之外,还要告诉引擎图片分辨率与设计分辨率的比率(setContentScaleFactor),以及我设计游戏的分辨率是什么(setDesignResolutionSize)。
关于分辨率适配就到这里。接下来的代码我们可以看到创建了一个CCScene,一个TestController的CCLayer,然后让director加载。因此,这个TestController应该就是程序运行开始我们看见的那个菜单界面。
再接下来就是程序后台与恢复的2个接口,内容很简单,就是暂停与恢复。
接下来将对TestController这个特殊的LAYER做一番了解。