1.随着科技的发展,我们可以看到从iphoneX的刘海屏开始,引发了各种全面屏和异形屏的出现。这是科技的进步,但是对于各大的应用厂商来说,苦不堪言。

2.当然 ,吐槽归吐槽,我们还是要理智的去对待这个事件的,因为我们要对我们应用的用户负责,为我们的产品负责,为我们的money负责。

3.早在很久以前,当16:9,4:3, 3:2 等不同形状的屏幕的时候,我们用了showAll和黑边来适配我们的应用,但是由于影响美观,我们走上了适配的道路,毕竟科技是进步的。

4.前期的适配,我们选取了16: 9为基础的分辨率,采用了fixedWith去固定宽度,因为那会儿都是宽屏,我们选取宽高比最大的来做基准分辨率,那么我们固定的内容区域,一定是能够展示到屏幕内的,至于为什么,你们可以把上面的比例转换成一样的,比如宽度48,那么就是 48:27, 48:36, 48:32, 这样就容易理解了。

5.那么当全面屏适配出来后,从宽屏到长屏,16:9 继续发展为 18:9,16:9的fixedWidth明显不够显示18:9的内容, 而且后续还会有20:9,21:9,让我们吐血。

这个时候我不知道你们是怎么适配的,我为了保证以前产品的稳定性,我就针对16:9以上比例的产品进行了FixedHeight,你可以用第四点的方法算下,16:9的用FixedHeight一定是最合适的,因为长度一直变长。

接着我会计算出相对应的屏幕偏移量,然后把产品内容按比例横移,这个对于有canvas的creator就很棒了。我们手撸代码的绝对是噩梦,特别在产品矩阵巨大的情况下。

6.接下来谈谈折叠屏。

其实我们以上的2种屏幕适配方案,在这种手机上单独打开都是可以适配的,唯一要调整的就是背景图的大小。

7.但是问题来了,它要在你玩着游戏的过程中切换屏幕的大小,那么就是长屏和宽屏的切换,是不是哭晕厕所。GLview要实习切换,有的人说跟翻转屏幕一样做就行,但是,前提是你做了相对布局,以前也没想过会有这种问题啊。

8.后来我思考了一个方案,反正都是显示16:9的,那我就把layer设计成一个16:9的节点,其他精灵都防止在上面,背景图也是在上面居中显示。然后贴边精灵用相对屏幕的距离进行适配。万幸可以做,但是就是适配周期有点长。

9.大家对cocos适配有不同方案的可以回复里说说。

[COCOS2DX-LUA]0-005.cocos2dx中关于全面屏和折叠屏的适配的一些见解的更多相关文章

  1. Cocos2dx+lua合适还是Cocos2dx+js合适?

    问题: 开发cocos2dx手游Cocos2dx+lua合适还是Cocos2dx+js合适 百牛信息技术bainiu.ltd整理发布于博客园 回答: 作者:廖宇雷链接:https://www.zhih ...

  2. cocos2d-x 3.0 在C++中调用lua函数

    代码用的是<cocos2d-x 3.0 在lua中调用自定义类>中的代码. 在上篇的基础上进行扩充. 写lua函数 local function process_packet(user_d ...

  3. vue2.0在table中实现全选和反选

    其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...

  4. react native Expo适配全面屏/Expo识别全面屏和正常屏

    一.最新版本的expo已经默认支持了全面屏,即不会像react native cli一样出现底部黑边 二.但是全面屏通过Dimensions.get('window')获取的高度还是不准确,因为全面屏 ...

  5. cocos2d-x 3.0 在C++中调用lua函数(2)

    个人觉得3.0里面, 在C++下面调用lua函数很不方便, 所以就扩展了一个类, 继承自LuaStack, 代码和使用方式如下: #ifndef __CC_LUA_STACKEX_H_ #define ...

  6. cocos2dx 3.0 scrollview 在android下面背景變綠色了

    在windows上面跑的是OK的,  在android下面跑的時候就變成這樣子了:

  7. cocos2d-x lua 内存回收

    使用cocos2d-x lua架构,游戏中存在两种内存回收方式. 1.cocos2d-x 本身内存回收 PS:假设在lua在创建一个类,继承cocos2d-x的一个类A,则该A也遵循cocos2d-x ...

  8. 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27691337 Cocos2d-x代码风格 前面我们已 ...

  9. c++11特性与cocos2d-x 3.0之std::bind与std::function

    昨天同事让帮忙写一小功能,才发现cocos2d-x 3.0 和 cocos2d-x 3.0rc0 差别还是相当大的. 发现Label这一个控件,3.0就比rc0版本多了一个创建函数,更为关键的是3.0 ...

随机推荐

  1. python 中open文件路径的选择

    一.问题描述 python 中使用open打开某个文件写入时,往往会发现需要写入的文件不在同级目录下.这样就需要根据文件的路径来找到并打开. 但往往有时绝对路径和相对路径,写入不正确就会打开失败. 二 ...

  2. thinkphp 5.x~3.x 文件包含漏洞分析

    漏洞描述: ThinkPHP在加载模版解析变量时存在变量覆盖的问题,且没有对 $cacheFile 进行相应的消毒处理,导致模板文件的路径可以被覆盖,从而导致任意文件包含漏洞的发生. 主要还是变量覆盖 ...

  3. 用Navicat建MySQL数据库表,动态改变创建时间和更新时间戳

    1.create_time 记录创建的时间,设默认值为:CURRENT_TIMESATMP 注意:不勾选那个[根据当前时间戳更新] 2.operator_time 更新记录的时间,勾选那个[根据当前时 ...

  4. 【HBase】通过Bulkload批量加载数据到Hbase表中

    目录 需求 步骤 一.开发MapReduce 二.打成Jar包放到linux执行 三.有两种办法将HFile文件加载到HBase表中 开发代码 Hadoop命令运行 需求 将hdfs上面的这个路径 / ...

  5. IO 模型知多少 | 代码篇

    引言 之前的一篇介绍IO 模型的文章IO 模型知多少 | 理论篇 比较偏理论,很多同学反应不是很好理解.这一篇咱们换一个角度,从代码角度来分析一下. socket 编程基础 开始之前,我们先来梳理一下 ...

  6. JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集

    工具地址:https://github.com/BothEyes1993/bes-jstools bes-jstools 100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outil ...

  7. activiti工作流入门学习

    工作流一般在OA系统用的比较多,当然,只要有流程审批的地方都会用到,activiti只是开源的工作流中比较流行的一个,还有其他的开源的工作流,这里学习activiti工作流:前面部分是关于activi ...

  8. JQ选择器-选择符合条件的元素,获取对应关系元素

    如果你想寻找id以“sub_”开头的元素,你可以使用: $("*[id^='sub_']") 如果你想寻找id以“trim”结尾的元素,你可以使用: $("*[id$=' ...

  9. SpringMVC 拦截返回值,并自定义

    有关取代mvc:annotation-driven使用自定义配置请看: http://blog.csdn.net/cml_blog/article/details/45222431 1.在项目开发中, ...

  10. mysql数据库如何修改密码及权限分配

    如何修改Mysql密码 Mysql用户密码采用md5加密函数加密(单向加密) SELECT PASSWORD('root'); -- *81F5E21E35407D884A6CD4A731AEBFB6 ...