Cocos2d-x中屏幕适配

影响屏幕适配的两个因素:屏幕分辨率和屏幕宽高比

目前ios的设备分辨率:

iphone4,4s:960*640

iphone5,5s:1136*640

ipad2:1024*768

ipad4:2048*1536

目前的引擎中提供有方法:

需要先明白的三个概念:

    逻辑的屏幕分辨率(WinSize):setDesignResolutionSize中的宽度和高度

    资源的大小:就是游戏中用到的地图和图片的大小

    屏幕的实际大小(FrameSize):屏幕的真实分辨率

扫描二维码关注公众号,回复: 636408 查看本文章
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pEGLView ->setDesignResolutionSize(1136,640,kResolutionNoBorder);

 此时的1136,640表示逻辑上游戏屏幕的大小(资源图片的大小参考,此时就是参考该大小,如果图片的大小是1136*640,那么刚好铺满该逻辑屏幕的大小,如果比逻辑屏幕的要大,像地图,那么就只会显示该资源的一部分)

  kResolutionShowAll:显示完所有内容,此时引擎会对继承自CCLayer的类和上面的子节点进行缩放,此时缩放是用屏幕的实际大小和逻辑分辨率做对比的(比如,逻辑分辨率被设置成了1136*640,结果屏幕的实际分辨率也是1136*640,此时那么刚好对CClayer进行全屏显示,,如果不符合这个分辨率,会自动进行留黑边处理,有可能是左右留黑边,有可能是上下留黑边,CCLayer的左下角是0,0,有上角是1136,640)

kResolutionNoBorder:

这种模式不会留黑边,但超出屏幕的不会显示,例如:如果开始kResolutionShowAll是上下留黑边,设置成kResolutionShowAll后,上下不会留黑边,但是宽度被拉伸了,加入左右分别被拉伸20个像素,那么WinSize还是setDesignResolutionSize设置的大小,但是屏幕的左下角的左边变成了(0,20)。

猜你喜欢

转载自ibook.iteye.com/blog/1956074