本文主要讨论若是在Cocos Creator上实现不一样的屏幕适配方案,补充官方文档的说明。web
在Cocos2d-JS中,设计分辨率到设备分辨率的适配方案有5种,分别是:设计模式
关于这五种设计模式的具体效果网络上已经有很是多的博客介绍了,甚至本身写个代码测试下就知道了,这里就再也不赘述。浏览器
在Cocos2d-JS中设置适配方案的API是:网络
// 设置适配模式 cc.view.setResolutionPolicy(cc.ResolutionPolicy.FIXED_HEIGHT); // 设置设计分辨率尺寸和适配模式 cc.view,setSesignReolutionSize(960, 540, cc.ResolutionPolicy.FIXED_HEIGHT); // 设置资源分辨率到设计分辨率的缩放比例 cc.director.setContentScaleFactor(1);
Creator的屏幕适配主要是放在Canvas组件上实现的,因此每当建立一个新的场景时,默认都会有个一个Canvas对象在层级管理器上,游戏内其它的节点都应该放在Canvas节点下,这样才能有效的在web浏览器上进行适配。编辑器
Canvas节点测试
鼠标点选层级管理器上的Canvas对象,在属性检查器面板上会对应显示对象的组件信息。咱们能够看到它默认添加了一个Canvas组件,而且勾选了“Fix Height”选项。spa
Canvas组件设计
关于Canvas组件,主要有三个属性:code
因为EXACT_FIT适配方案是将游戏内容非等比拉伸或缩放至全屏,实际效果一般都没法接受,因此在Creator中被废弃了,没法经过编辑器进行设置。若是非要使用,能够经过代码设置:视频
// 设置适配模式 cc.view.setResolutionPolicy(cc.ResolutionPolicy.EXACT_FIT);
可是可能会和Canvas冲突,因此能够试试禁用Canvas组件。这样处理后在web平台上可能会有问题,native上应该是可行的。
showAll
在Creator上同时勾选“Fit Height”和“Fit Width”便可开启showAll适配模式。
这个适配方案其实也不是很是常见,咱们公司早期都是使用这个方案。它的好处是无论屏幕比例如何,保证整个场景都是可见的,并且等比适配。可是老是在左右两边或者上下两边出现黑边。
NO_BORDER
和SHOW_ALL相反,在Creator上同时去除“Fit Height”和“Fit Width”的勾选便可开启noBorder适配模式。
这个适配模式是根据屏幕比例等比拉伸画面,有两种结果:
它的好处是没有黑边,缺点是在不一样的屏幕比例上,不能缺点究竟是宽度裁切仍是高度裁切。因此进行场景设计的时候有挺大局限性。
FIXED_HEIGHT
因为手机屏幕的局限性,一般游戏设置为横屏的,在横屏模式下,一般设置适配方案为固定高度,因此这也是Creator默认的视频方案。
在Creator中,只勾选Canvas组件的“Fit Height”便可开启fixedHeight适配模式。
它的好处是能够实现全屏,拉伸或者缩放高度为屏幕高度,宽度进行裁切。
FIXED_WIDTH
在Creator中,只勾选Canvas组件的“Fit Width”便可开启fixedWidth适配模式。
它的好处是能够实现全屏,拉伸或者缩放宽度为屏幕宽度,高度进行裁切。在竖屏模式下,一般设置适配方案为固定宽度。