首页 > 代码库 > CoCos2d-x屏幕分辨率设置
CoCos2d-x屏幕分辨率设置
CoCos2d-x屏幕分辨率设置
接下来是讲述CoCos2d-x对屏幕分辨率设置的问题:主要是 setFrameSize、setFrameZoomFactor 和 setDesignResolutionSize 函数的使用。
1 . setFrameSize这个函数是设置移动设备屏幕分辨率,一般与setDesignResolutionSize的设置一致。
2 . setFrameZoomFactor 调用这个函数是因为有的移动设备屏幕分辨率非常大,比如ipad3。太大的话在电脑上看不全了,所以用setFrameZoomFactor把程序窗口缩小。因此,这个函数只有在使用win32,mac,linux桌面时才会用到。
3.这个DesignResolutionSize表示设计方案,就是你的游戏完美支持的分辨率方案,一般根据图片资源的尺寸来定,自适配时会按照这个分辨率计算出缩放因子。
因此,这个值也应该是动态的(当然也可设定,比如设为640x960宽屏,这样在小屏的等比缩放也不会影响太大):
pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionNoBorder);
第3个参数kResolutionNoBorder 是适配策略中的一种:
2.0版本提供了三种适配策略:
(1)kResolutionNoBorder:超出屏幕的部分会被裁剪,两侧没有黑边,铺满屏幕,按图片原始比例显示,图片不变形。
(2)kResolutionShowAll:整个游戏界面是可见的,会按原始比例进行缩放,图片不变形,但两侧可能会留有黑边,不铺满屏幕。
(3)kResolutionExactFit:整个游戏界面是可见的,图片可能会进行拉伸或者压缩处理,铺满屏幕,图片会变形。
可以根据自己的要求选择。
4.举例:设置移动应用的分辨率,以640x960分辨率为例
(1)在main.cpp中设置:
CCEGLView* eglView = CCEGLView::sharedOpenGLView();eglView->setFrameSize(640, 960);
eglView->setFrameZoomFactor(1.0f);
(2)在AppDelegate.cpp中设置:
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(640, 960, kResolutionExactFit);