既上一篇介绍了游戏的主要概况下,这篇来开始讲一下游戏中的各个文件。
先来看看cocos2d-x 3.0 中一个比较赞的功能,比起3.0以前的要令人非常激动的。虽说3.0出来很久了,我还是说下这个功能,知道的飘过。
对于在不同环境下用cocos2d-x开发手游,屏幕尺寸是一个比较蛋疼的问题,比如在3.0以前,在代码中修改屏幕尺寸还是比较麻烦的,而且在电脑上运行良好的尺寸到手机端感觉效果就差了一点。
AppDelegate.cpp是整个游戏的入口程序,3.0以前设置游戏尺寸时主要代码如下:
bool AppDelegate::applicationDidFinishLaunching() { // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if (!glview) { glview = GLView::create("My Game"); director->setOpenGLView(glview); } director->setOpenGLView(glview); #if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) // a bug in DirectX 11 level9-x on the device prevents ResolutionPolicy::NO_BORDER from working correctly glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::SHOW_ALL); #else glview->setDesignResolutionSize(288, 512, ResolutionPolicy::SHOW_ALL); #endif director->setDisplayStats(true); director->setAnimationInterval(1.0 / 60); auto scene = LoadingScene::create(); director->runWithScene(scene); return true; }
glview->setDesignResolutionSize(288, 512, ResolutionPolicy::SHOW_ALL);
而在3.0中可以直接在代码中设置GLView的大小,也就是绘制的游戏屏幕的大小,
同样的为AppDelegate.cpp中的applicationDidFinishLaunching()函数,如下:
bool AppDelegate::applicationDidFinishLaunching() { // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLView::createWithRect("My Game",Rect(0,0,320,480)); director->setOpenGLView(glview); } director->setDisplayStats(false); director->setAnimationInterval(1.0 / 60); auto scene = GameLayer::createScene(); director->runWithScene(scene); return true; }
glview = GLView::createWithRect("My Game",Rect(0,0,320,480));的部分,直接设置了GLView的绘制大小320*480,Rect(0,0,,,320,480)设置了绘制矩形的坐标点和长和宽,坐标为(0,0),长:480,宽;320
如在上篇中的图像就是在linux下命名终端下跑出来的游戏图,
我一般都是在电脑上把游戏写的差不多了之后才到手机端测试的,用电脑跑游戏要比手机快很多,而且直接操作终端,编译速度也比eclipse要快一些。
AppDelegate.cpp中主要代码也就在applicationDidFinishLaunching()函数中,函数中生成了GameLayer场景,然后调用导演类来运行这个场景。
好了这一篇主要介绍了AppDelegate中的一些变化,同时引出了游戏的GameLayer层,也即游戏主要逻辑层,接下来介绍游戏中的各个精灵元素和层。
原文:http://blog.csdn.net/hust_superman/article/details/38020243