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. 疯子的算法总结(九) 图论中的矩阵应用 Part 2 矩阵树 基尔霍夫矩阵定理 生成树计数 Matrix-Tree

    定理: 1.设G为无向图,设矩阵D为图G的度矩阵,设C为图G的邻接矩阵. 2.对于矩阵D,D[i][j]当 i!=j 时,是一条边,对于一条边而言无度可言为0,当i==j时表示一点,代表点i的度. 即 ...

  2. HTML 页面跳转的五种方法

    H方法TML 页面跳转的五种方法 下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件.1) html的实现 <he ...

  3. 网上流行护眼色的RGB值和颜色代码

    网上流行护眼色的RGB值和颜色代码   绿豆沙色能有效的减轻长时间用电脑的用眼疲劳!色调:85,饱和度:123,亮度:205: RGB颜色红:199,绿:237,蓝:204:十六进制颜色:#C7EDC ...

  4. NLTK的安装与简单测试

    1.NLTK简介 Natural Language Toolkit,自然语言处理工具包,在NLP领域中,最常使用的一个Python库.NLTK是一个开源的项目,包含:Python模块,数据集和教程,用 ...

  5. uCOS2014.1.8

    目前uCOS中已经接触到的全局变量: OSTCBCur OSIntNesting OSPrioHighRdy    最高优先级任务 任哲编著<嵌入式实时操作系统uC/OS-II原理及应用> ...

  6. js代码中引入其他js文件

    /***引入 js 文件 @example: import('js/aui.picker.js') @example: import(['js/aui.picker.js', 'css/aui.pic ...

  7. burpsuite抓包无法识别POST参数问题

    直接拿一道bugkuctf中的题目进行测试 这道题目就是用POST方法上传what=flag 我们利用burpsuite进制抓包 需要更改三个部分,这样就可以解决burpsuite无法识别POST参数 ...

  8. 视口viewport

    一.viewport 1. 何为视口? 视口是浏览器显示网页的矩形区域. 2. 默认视口:模拟一个大约1000像素宽的视口. 理想视口:因设备.操作系统.浏览器而异,一般而言,手机宽带大约在300-5 ...

  9. Puppeteer笔记(一):Puppeteer简介

    一.Puppeteer简介 Puppeteer是NPM库,它提供了NodeJS高级API来控制Chrome.Puppeteer 默认以无头(无界面)方式运行,但也可以配置为运行有界面的Chrome. ...

  10. noi7219 复杂的整数划分问题

    noi7219 复杂的整数划分问题 #include <bits/stdc++.h> using namespace std; ; int dp1[maxn][maxn], dp2[max ...