引言

cocos creator是什么?

Cocos Creator 是触控科技旗下的产品,以内容创作为核心的游戏开发工具,在 Cocos2d-x 基础上实现了彻底脚本化、组件化和数据驱动等特点。

屏幕适配是cocos creator面试题中必问的一个题目,今天给大家说说怎么样做屏幕适配。

1: 屏幕适配的2个核心的配置

a: 设计分辨率: 美术设计资源时候的分辨率, 也是我们所有资源的参考分辨率,我们就是基于这个分辨率来适配到其它不同的手机分辨率上的;

b: 适配策略: 固定高度/固定宽度;

设计分辨率大家都好理解,那么什么是适配策略呢?

假设我们以设计分辨率是 960x640为例,我们要适配到 1920x1080上面, 大家会发现,这个怎么适配啊? 960x640----> 1920x1080,高度不一样,宽度不一样,有两个不同的纬度需要适配,这样的话处理起来有一些难度。游戏引擎就想了一个办法,我先在一个纬度保持一致,然后在另外一个纬度来进行适配; 那到底是选哪个纬度呢?如果是高度一致,那么就是固定高度,如果是宽度一致,那么就是固定宽度。这个就是固定高度与固定宽度的由来。

固定高度: 960x640, 先做好逻辑分辨率((1920 * 640 / 1080)x 640)适配, 然后,我们在乘以一个比例scale(1080/640), 到1920x1080上;

固定宽度: 960x640, 先做好逻辑分辨率适配 (960 x (1080 * 960 / 1920)), 然后我们在剩一个比例scale(1920/960), 到 1920x1080上;

游戏引擎处理的大小,坐标,都是逻辑大小,游戏窗口的逻辑大小就是我们固定高度or固定宽度策略算出来以后的分辨率;

所以我们在代码里面的大小位置,都是基于逻辑分辨率的,在最终绘制的时候,大小,位置,都会乘以到目标像素分辨率锁固定的比例scale;

比如 100 * 100, 固定高度, 到 1920x1080后像素大小是 (100x100) * 1080/640, 这样我们最终就适配到 1920x1080上了;

妙招1: 停靠点

一个纬度和设计是一致的,我们只要考虑另外一个纬度的适配,在另外一个纬度的范围内,把设计里面的主要内容都摆布进来。这个时候就会出现相对的几个点,比如我的类型是基于中心的,基于上面的,基于下面的… 所有在适配的时候,我们一般会做几个标志的参考点,如图红色点点

核心原理就是,不管你的屏幕大小怎么变,我只要动态的根据屏幕大小来调整参考点的位置,这样,相对于参考点的元素也会跟着移动,一般适配我们都是这样来做的,那这个适配我们很多都会有组件来完成,例如Widget等。你上边的logo,无论屏幕怎么变,都是上面的,下边的,无论屏幕怎么变都是下面的。

妙招2: 内容缩放

即使这样,因为一个纬度毕竟不同,有可能在这个纬度上,内容放不下,粘到一起了,我们还是的要对内容的大小来做一些调整, 可以根据逻辑分辨率,来做一些内容上的缩放,能让这些内容排下;

秒招3: 大小调整

有一些UI控件,是区域性的,比如滚动条等,我们希望适配后,区域大小也要随屏幕的变化而变化,那么这个时候,可以设置区域相对于边界的偏移, 如图:

这样边界变了,大小也跟着变了。

其实搞懂了适配的核心原理,一点都不难,下次cocos creator面试题你会回答了么?

vue适配不同屏幕大小_Cocos creator面试题 屏幕适配的3个小技巧相关推荐

  1. 《前端》解决背景适配不同屏幕大小,如何解决因屏幕大小的不同而导致背景的放大或缩小。

    目录 一.问题描述: 1.多了一段滚动距离 ​2.换大屏时背景就变小了 二.需要了解知识 三.解决: 1.HTML上: 2.css上: 四.效果: 一.问题描述: 最近小编在编程时遇到一个问题,放了一 ...

  2. html 自动适应手机屏幕大小,HTML5 canvas自适应手机屏幕大小的一种解决方案

    一.最终效果 为了不浪费大家时间,先展示最终效果,看看是不是大家需要的解决方案: 标准分辨率: 其他分辨率的适配情况: 二.需求 1.canvas的内容能全部展示在屏幕上 2.尽量能保证图像不变形 3 ...

  3. android 布局 不同屏幕大小,如何创建支持不同屏幕尺寸的Android应用

    Supporting Different Screens Android用两种常规属性来分类设备屏幕:尺寸和像素密度.作为开发者,你应当预料到你的android应用程序将会被安装到不同屏幕尺寸和像素密 ...

  4. php自动适应屏幕大小,如何解决js获取屏幕大小并且让图片自适应的方法

    在写h5页面的时候,经常会需要将图片自适应大小,一般都是用等比例的缩放,这就有个问题,当上传的图片不是一个规格时就会出现展示图片不完美. 为了解决这个问题,我们可以通过js去获取图片的大小,然后在根据 ...

  5. cocoscreator3d 获取mesh 大小_Cocos Creator 3D 粒子系统初战: 不要钱的酷炫火焰拿走不谢!...

    五维:技术经理,10年编程经验,专注游戏领域,不断进击财富自由.分享实用的教程.经验.源码.心得! 先展示一下最终效果: 最终效果 后边图片挺多的,使用流量看文章的,祝好运. 你听说过5毛钱特效吗? ...

  6. android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小

    大家平时都会调用到Camera 这个API,在设置Camera.Paramera的参数的时候,有一个预览大小.也就是: setPreviewSize(int width, ing height) 这个 ...

  7. potplayer 播放下一个视频时,保持当前屏幕大小不变(锁定播放屏幕尺寸)

    在屏幕中右键--选项--播放,如下图,把要设定的屏幕尺寸设置好,点应用即可.关播放器在屏幕中的位置,只要把播放器拖到适当的位置,下次还是同一位置.

  8. video 视频标签自适应屏幕大小(设置封面自适应屏幕)

    <div class="videoContent"><video src="视频地址" autoplay loop mutedpreload= ...

  9. html页面一个屏幕大小不一样,关于web页自动适配屏幕大小

    一.先了解下html5的viewport使用 随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的 ...

最新文章

  1. 【Java挠头】可变参、foreach、Annotation等特性
  2. Window.Open() 和 window.showModalDialog()参数
  3. 设置linux服务,Linux服务的seLinux设置
  4. (转)创建X509证书,并获取证书密钥的一点研究
  5. Linux中安装nc(netcat)常见问题
  6. c语言入门经典案例,c语言入门经典案例及飞源代码.doc
  7. 查python的软件_Python制作天气查询软件【python实战必学】
  8. 已知表t est(name)的记录如下, tom tom_green tomly lily 代码select * from test where name rlike ‘tom.*‘的结果有几条记录
  9. mysql注入攻击getshell_[漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  10. day31 模块 与包
  11. pythonxy官网下载_spyder安装包
  12. 尝试Python的websockets库的最基础功能
  13. JAVA 通过POI实现Excel从单元格选择下拉选项
  14. 消费品牌数字营销“终局九问” | 2022全球数字价值峰会
  15. mysql主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server
  16. (c#)int类型和枚举类型的相互转换
  17. docker数据卷容器卷_如何删除Docker映像,容器和卷
  18. 足球相关的英文专业术语(持续更新中...Ctrl+F可直接进行搜索)
  19. 必应搜索引擎怎么了?
  20. Hierarchical Graph Network for Multi-hop Question Answering 论文笔记

热门文章

  1. [BZOJ 2111][ZJOI2010]Perm 排列计数(Lucas定理)
  2. [转]查看linux服务器硬盘IO读写负载
  3. [FreeProxy]FreeProxy代理服务器端软件介绍 之一
  4. cacti添加apache监控模板
  5. EIGRP的扩展实验
  6. java 抽象类 注入,spring向抽象类注入问题
  7. 通信原理眼图画法_光纤通信链路入侵与检测技术研究综述
  8. datatable java排序,JSF数据表(h:dataTable)DataModel排序数据
  9. Xcode安装及卸载
  10. 什么是“好的”测试用例?