1、kResolutionUnKnown :没有任何处理
FrameSize//帧大小,表示实际分辨率下的位置。绝对数值。
2、kResolutionExactFit 将画面拉伸【画面可能会变形】以适应屏幕,将屏幕铺满
3、kResolutionShowAll 显示所有的画面,但四周留有黑色填充。
WinSize //可以认为是画面的大小。逻辑分辨率。逻辑分辨率会保持宽高比,实际会根据不同的屏幕和模式进行伸缩。下面设置的代码其实就是在设置WinSize
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(720, 480, kResolutionShowAll); // 或者 CCEGLView::sharedOpenGLView()->setDesignResolutionSize(720, 480, kResolutionExactFit);
4、kResolutionNoBorder 在第三个的基础上进行修改,使得 WinSize和FrameSize保持相同宽高比的情况下进行放大或者缩小,按照宽或者高,然后截取和FrameSize宽高比相同的最大部分。被截取的部分叫做VisibleSize,VisibleOrigin。
// 组[1] : FrameSize: width = 720, height = 420 WinSize: width = 720, height = 480 VisibleSize: width = 720, height = 420 VisibleOrigin: x = 0, y = 30 // 组[2] :相比 组 [1] FrameSize 不变 VisibleSize 和 VisibleOrigin 随着 WinSize 的变小而变小 FrameSize: width = 720, height = 420 WinSize: width = 480, height = 320 VisibleSize: width = 480, height = 280 VisibleOrigin: x = 0, y = 20 // 组[3] : 相比组 [1] WinSize 不变,VisibleSize 随着 FrameSize 的比例改变而改变 FrameSize: width = 720, height = 540 WinSize: width = 720, height = 480 VisibleSize: width = 640, height = 480 VisibleOrigin: x = 40, y = 0 // WinSize VisibleSize VisibleOrigin 与都设计的分辨率相关,满足如下关系 WinSize.width = (VisibleOrigin.x * 2) + VisibleSize.width WinSize.height = (VisibleOrigin.y * 2) + VisibleSize.height