zoukankan      html  css  js  c++  java
  • iPhoneX快速适配,简单到你想哭。

     

    研究了5个小时的iPhoneX适配。 从catalog,storyboard,safearea等一系列文章中发现。
    如果我们想完全撑满全屏。那直接建一个storyboard就好了。
    但撑满全屏后,流海就是一个恶心的问题。

    思索半天后,我们发现,其实我们想要的。并不是撑满。 而是要去除留海部分。
    那有没有一种办法,干脆就让我们的iPhoneX达到和iPhone6一样的显示效果呢。 或许这才是我们想要的。 下面的代码,放入每一个场景的onLoad中,靠热更新,就能支持iPhoneX了,效果不要不要的。(思路就是,iPhoneX下面,用ShowAll)

        if(cc.sys.isNative && cc.sys.platform == cc.sys.IPHONE){
            var size = cc.view.getFrameSize();
            var isIphoneX = (size.width == 2436 && size.height == 1125) 
                   ||(size.width == 1125 && size.height == 2436);
            if(isIphoneX){
                var cvs = this.node.getComponent(cc.Canvas);
                cvs.fitHeight = true;
                cvs.fitWidth = true;
            }
         }

    总结一下步骤

    1、新建一个Laucn Screen.storyboard
    2、删除所有View下面的内容,SafeArea也要去掉
    3、General里面,使用这个Launch Screen作为加载屏

    这里想要达到最好的效果,还有设计分辨率有关。
    比较推荐的是 1280 x 640. 在其他设备上,默认使用 定宽策略。 也就是说,高度上做自适应。 背景图做成 1280 x 960 就可以适配到iPad了。 (如果之前用的是1280 x 720的设计分辨率,也不打紧。勉强可以用)。
    1280 x 640的设计分辨率,见下图。

     

    之前为了适配ipad也是用的这招!只不过上下会有黑边,但游戏内容一览无余。

            let isNotFit = cc.winSize.width / cc.winSize.height <= 1.65;
            let canvas = this.node.getComponent(cc.Canvas);
            if (isNotFit) {
                canvas.fitHeight = true;
                canvas.fitWidth = true;
            }
     
     
     
     
     
  • 相关阅读:
    const char* && string && String^ 类型转换
    vs2010 vc++ 统一修改所有工程的目录配置
    OSG开发概览
    osg渲染数据高程文件
    postgis数据库文件shapefile导入 dbf file (.dbf) can not be opened.shapefile import failed.
    Point ZM 转换为Point 类型
    Extjs关于alert显示不出—异步问题
    js执行顺序<转>
    HTML中IFrame父窗口与子窗口相互操作
    SpringMVC学习系列(6) 之 数据验证
  • 原文地址:https://www.cnblogs.com/luorende/p/9052492.html
Copyright © 2011-2022 走看看