声 明本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。gl.paea.cn版权所有。
Hello,大家好,欢迎回到“和屌丝一起学coocs2dx”系列教程。上节我们说到了“粒子特效”。不知道大家玩的开心不,我们的基本课程已经接近尾声了。后面的东西,就看大家自己的努力了,我也要做自己的项目了,如果速度够的话,我会把我的项目发布的。嘿嘿。好了这节我们说下-屏幕设置。
【一】:设置啥
首先是换竖屏,然后还有个比较重要的,就是自适屏。
【二】:横竖换屏
1.打开main.cpp文件
找到eglView->setFrameSize(320, 480);,这里设置成你要的分辨率,用于开发。
2.生成android项目后修改AndroidManifest.xml文件
android:screenOrientation="landscape"横屏显示(默认)
android:screenOrientation="portrait"竖屏显示
【三】:自适屏
这里算是个难点,应为android的开源,机型千奇百怪,我们没有办法去适应所有的屏幕,选择的方案也很多。
1.针对每个分辨率做一套方案
2.cocos2dx2.0.4以后提供的缩放方案
这么看来第一种是绝对没有问题的,但是对一般的开发者来说,工程量太大,所以第二种相对更适合。
使用方法:
1.打开AppDelegate.cpp文件。
找到pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
在这行的下面写(注意位置不能错,不然有问题)
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480, 800, kResolutionNoBorder);
这里我们使用的是setDesignResolutionSize函数,他的三个参数分别是(设计宽,设计高,缩放方式)。该函数会自动按设计宽高和缩放方式适应手机屏幕。
缩放方式:
kResolutionExactFit //自动缩放宽高全部显示(会变形)
kResolutionNoBorder //不留黑边全屏展示(不变形,但是长的那边会被裁减)
kResolutionShowAll //全部展示不裁剪(可能会留黑边)
【三】:坐标
我们坐标需要按照屏幕的实际大小来,所以也要使用相对坐标。
//获取可视区域大小(用户手机分辨率)
CCDirector::sharedDirector()->getVisibleSize();
//获取可是区域左下角坐标
CCDirector::sharedDirector()->getVisibleOrigin();
这个是基本元素,之后,网上有很多说分9点来确定相对坐标系,也是靠他们俩来拼合的。
【四】:缩放
现在新版本缩放已经自动了。nothing to do。