首页 > 代码库 > 豪华版飞机大战系列(二)
豪华版飞机大战系列(二)
既上一篇介绍了游戏的主要概况下,这篇来开始讲一下游戏中的各个文件。
先来看看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);
设置的尺寸大小为宽288,长512的尺寸,这在ubuntu下的效果看起来不是特别的好,主要是两边都是黑色的,只有中间才是游戏的屏幕显示。
而在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层,也即游戏主要逻辑层,接下来介绍游戏中的各个精灵元素和层。
豪华版飞机大战系列(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。