我们都知道在手机游戏的设计开发中我们需要考虑游戏移植到手机上后的屏幕展示大小。

当然,手机屏幕的大小是不固定的: 1.安卓机大部分是长宽比例(16:9)

2.苹果机的71:41约等于(16:9)

3.另外还有一些平板电脑是4:3等

分辨率是屏幕所能显示像素的多少。


我们只能在设计中设置游戏展示分辨率的多少并不能去设置实际手机窗口的大小。

所以cocos2dx给我们准备了几种屏幕适配的方法:

(也就是通过设置设计分辨率和手机实际窗口分辨率的大小去适应实际的手机窗口大小)

(1)ResolutionPolicy::EXACT_FIT :拉伸变形(分别按照宽高因子进行设置)

(2)ResolutionPolicy::NO_BORDER :按比例放缩(按较大的因子)

(3)ResolutionPolicy::SHOW_ALL :按比例放缩(按较小的因子)

(4)ResolutionPolicy::FIXED_WIDTH :按比例放缩(按照宽度比例)

(5)ResolutionPolicy::FIXED_HEIGHT :按比例放缩(按照高度比例)


假设:屏幕分辨率(fWidth,fHeight) ; 设计分辨率(dWidth,dHeight)。

放缩因子:k1 = fWidth/dWidth ; k2 = fHeight/dHeight。

则适配后的分辨率大小如下:

(1)EXACT_FIT :( dWidth * k1 , dHeight * k2 )

(2)NO_BORDER :( dWidth * max(k1,k2) , dHeight * max(k1,k2) )

(3)SHOW_ALL :( dWidth * min(k1,k2) , dHeight * min(k1,k2) )

(4)FIXED_WIDTH :( dWidth * k1 , dHeight * k1 )

(5)FIXED_HEIGHT:( dWidth * k2 , dHeight * k2 )


PS:

(1)WinSize :屏幕大小

(2)VisibleSize :可视区域大小

(3)VisibleOrigin :可视区域的左下角坐标