cocos2d-x 屏幕适配

来源:互联网 发布:为知笔记产品经理 招聘 编辑:程序博客网 时间:2024/04/24 20:55

一: 四种模式:

1: ResolutionPolicy::UNKNOWN - 无模式

是 Cocos2D-X默认的适配方案, ResolutionPolicy::UNKNOWN, 不可控,不建议使用

2: ResolutionPolicy::EXACT_FIT

对画面的长宽进行拉伸,从而保证全屏显示,图片会变形,固此模式不推荐使用。

3:ResolutionPolicy::SHOW_ALL

对画面的长宽进行等比拉伸,使整个画面显示出来,有时候会有黑边。

4:ResolutionPolicy::NO_BORDER

对画面的长宽进行等比拉伸,使整个画面显示出来,有时候会使部分画面超出窗口。

此模式可以解决两个问题,其一:游戏画面全屏;其二:保持设置游戏时的宽高比例


二:FrameSize、WinSize、VisibleSize、VisibleOrigin

1:FrameSize

窗口实际的宽高,实际的屏幕分辨率

2:WinSize

    可以通过如下方法获取到 setDesignResolutionSize 所设置的值:
CCSize winSize = Director::getInstance()->getWinSize(); 

3:VisibleSize

    是在 WinSize 之内,保持 FrameSize 的宽高比所能占用的最大区域,实际屏幕分辨率可以大于 WinSize ,但VisibleSize 一定会小于或者等于
WinSize,这两者宽高比相同。VisibleSize 有着 WinSize 大小(随WinSize 的大小改变而改变),还有着 FrameSize 的宽高比,它标示 在设计分辨率(WinSize)下,在屏幕中的可见区域大小。

4:VisibleOrigin

在设计分辨率下被截取的区域大小

三: setDesignResolutionSize

    设置逻辑上的游戏屏幕大小,在这里我们设置了其分辨率为 720×480 为例,那么在游戏中,我么设置精灵的位置便可以参照此值,如 左下角 ccp(0,0),右上角 ccp(720, 480),而不论 FrameSize 的大小为多少,是 720×480 也是,是 480×320 也罢,总能正确显示其位置,左下角和右上角。能够实现这一点的原因是,固定了设计分辨率大小,从而确定了其固定的宽高比,它的 优势 是可以使用具体的数值摆放精灵位置,不会因为实际屏幕大小宽高比而是内部元素相对位置关系出现混乱。

0 0
原创粉丝点击