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. C# 多线程(18):一篇文章就理解async和await

    目录 前言 async await 从以往知识推导 创建异步任务 创建异步任务并返回Task 异步改同步 说说 await Task 说说 async Task 同步异步? Task封装异步任务 关于 ...

  2. Android Library 发布开源库 JCenter & JitPack 攻略

    对于Android 的开源库,一般通过 JCenter 或者 JitPack 发布开源.两种方式均可~ 当你造了一个好玩有用的东西想要分享给大家时,开源出来便是一种好方式~ 一. 上传开源库到 JCe ...

  3. 一键运行CIS安全扫描,集群安全无忧!

    CIS安全扫描是Rancher 2.4推出的其中一个重磅功能,旨在帮助用户快速.有效地加强集群的安全性.本文将详细介绍CIS安全扫描这一功能,包含详细的操作demo. 本文来自Rancher Labs ...

  4. GIL-Guilds(黑白灰染色)

    传送门门门门门咩咩咩咩咩咩咩咩咩咩咩咩 \(这题真是扯谈!!!\) \(灰色很高级是吧,但是题目没要你把颜色全部用上去啊!!!\) \(黑色或者白色只有一个条件,但灰色需要和所有三种颜色都相邻.这么难 ...

  5. 麦基数(p1045)

    描述: \(计算2^{P}−1的位数和最后500位数字(用十进制高精度数表示)\) Ⅰ.求位数 \(因为2^p最后一位必定不为0,求2^p-1的位数也就是求2^p位数\) \(2^p的位数确实很难求, ...

  6. 线段树 逆序对 Minimum Inversion Number HDU - 1394 Laptop

    Minimum Inversion Number HDU - 1394 求最小反转数,就是求最少的逆序对. 逆序对怎么求,就是先把所有的数都初始化为0,然后按照顺序放入数字,放入数字前查询从这个数往后 ...

  7. 这么多Linux版本,你究竟该怎么选择?

    Linux有非常多的版本,比如世面上常见的有 Ubuntu.RedHat.Fedora.Centos等等,这么多的版本我们究竟该选哪一个呢?今天我带大家对各个版本进行一下分析和比较,帮助大家来做出更好 ...

  8. 王颖奇 201771010129《面向对象程序设计(java)》第八周学习总结

    实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) 掌握实现接口类的定义要求: (3) 掌握实现了接口类的使用要求: (4) 掌握程序回调 ...

  9. JS实现显示来访者的停留时间

    显示来访者的停留时间 <script language="javascript"> var ap_name = navigator.appName; var ap_vi ...

  10. 软路由OpenWrt(LEDE)2020.5.10更新 UPnP+NAS+多拨+网盘+DNS优化

    近期更新:2020.05.10更新-基于OpenWrt R2020.5.9版本,源码截止2020.05.10.   交流群:QQ 1030484865 电报 t.me/t_homelede   版本说 ...