听说,这样调整Cocos屏幕适配看着才舒服

不同平台需要不同的适配方案,否则开发者本身用着不舒服,用户体验更是不舒服。本文主要介绍了Cocos 2d-JS和Cocos Creator的屏幕适配,还在纠结用哪种适配方案的开发者们不妨进来看看。

  Cocos2d-JS屏幕适配  

在Cocos2d-JS中,设计分辨率到设备分辨率的适配方案有5种,分别是:

  • cc.ResolutionPolicy.EXACT_FIT

  • cc.ResolutionPolicy.SHOW_ALL

  • cc.ResolutionPolicy.NO_BORDER

  • cc.ResolutionPolicy.FIXED_HEIGHT

  • cc.ResolutionPolicy.FIXED_WIDTH

关于这五种设计模式的具体效果网络上已经有非常多的介绍了,甚至自己写个代码测试下就知道了,这里就不再赘述。

在Cocos2d-JS中设置适配方案的API是:

99c81c6acabd2cda117c0d7f44e5763a.png

  Cocos Creator屏幕适配  

  实现方式  

Creator的屏幕适配主要是放在Canvas组件上实现的,所以每当创建一个新的场景时,默认都会有个一个Canvas对象在层级管理器上,游戏内其它的节点都应该放在Canvas节点下,这样才能有效的在web浏览器上进行适配。

7fc48bbb56e6920d7982d6102b3dd2c7.png

  Canvas组件  

鼠标点选层级管理器上的Canvas对象,在属性检查器面板上会对应显示对象的组件信息。我们可以看到它默认添加了一个Canvas组件,并且勾选了“Fix Height”选项。

5c2e8661e04166ed9057fed9467fe54a.png

Canvas组件

关于Canvas组件,主要有三个属性:

  • Design Resolution:主要设置游戏设计分辨率的尺寸,默认设置宽度960(W)高度640(H)。

  • Fit Height:固定高度。

  • Fit Width:固定宽度。

  EXACT_FIT(非等比拉伸至全屏)

由于EXACT_FIT适配方案是将游戏内容非等比拉伸或缩放至全屏,实际效果通常都无法接受,所以在Creator中被废弃了,无法通过编辑器进行设置。如果非要使用,可以通过代码设置:

40818dc8d4b0aac204a81b976d269cf5.png但是可能会和Canvas冲突,所以可以试试禁用Canvas组件。这样处理后在web平台上可能会有问题,native上应该是可行的。

  SHOW_ALL(等比显示整个场景内容)

21f8d76a8c2bd9a7d87183d6aa0b9857.png

在Creator上同时勾选“Fit Height”和“Fit Width”即可开启showAll适配模式。

这个适配方案其实也不是非常常见,我们早期都是使用这个方案。它的好处是不管屏幕比例如何,保证整个场景都是可见的,而且等比适配。但是总是在左右两边或者上下两边出现黑边。

  NO_BORDER(等比拉伸到全屏)

23743bc977665ebf9d7e8925af4c9e3c.png

和SHOW_ALL相反,在Creator上同时去除“Fit Height”和“Fit Width”的勾选即可开启noBorder适配模式。

这个适配模式是根据屏幕比例等比拉伸画面,有两种结果:

  • 当高度拉满,宽度超出屏幕的时候,裁切宽度。

  • 当宽度拉满,高度超出屏幕的时候,裁切高度。

它的好处是没有黑边,缺点是在不同的屏幕比例上,得决定到底是宽度裁切还是高度裁切,因此进行场景设计的时候有局限性。

  FIXED_HEIGHT(等比拉伸高度到全屏)

5f07af5b5bc8b28a774a4026048b1c37.png

由于手机屏幕的局限性,通常游戏设置为横屏的,在横屏模式下,通常设置适配方案为固定高度,所以这也是Creator默认的视频方案。

在Creator中,只勾选Canvas组件的“Fit Height”即可开启fixedHeight适配模式。

它的好处是可以实现全屏,拉伸或者缩放高度为屏幕高度,宽度进行裁切。

  FIXED_WIDTH(等比拉伸宽度到全屏)

93052a25c1b5258fc05e7599d936196b.png

在Creator中,只勾选Canvas组件的“Fit Width”即可开启fixedWidth适配模式。

它的好处是可以实现全屏,拉伸或者缩放宽度为屏幕宽度,高度进行裁切。在竖屏模式下,通常设置适配方案为固定宽度。

除了上述介绍的几种方法,各位还有更好的屏幕调试方案吗? 不服来战。

a069beb93697122a17b1b01f616ef604.gif

戳原文,更有料!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值