creator手机屏幕适配方案【玩转异形屏】

iphoneX真机测试图:

Demo是横屏的,竖屏自行类推

var DesignWidth = 1334;
var DesignHeight = 750;

cc.Class({
extends: cc.Component,

onLoad: function () {
    // 设置适配模式(横屏)
	if(cc.sys.OS_ANDROID == cc.sys.os || cc.sys.OS_IOS == cc.sys.os) {
        if((cc.view.getFrameSize().width / cc.view.getFrameSize().height) == (2436 / 1125)){
            this.isIphoneX = true;
        }else{
            this.isIphoneX = false;
        }
        
        if((cc.view.getFrameSize().width / cc.view.getFrameSize().height) >= (DesignWidth / DesignHeight)){
            //宽度超出
            var width = cc.view.getFrameSize().width * (DesignHeight / cc.view.getFrameSize().height);
            cc.view.setDesignResolutionSize(width, DesignHeight, cc.ResolutionPolicy.FIXED_HEIGHT);
        }else{
            //高度超出
            var height = cc.view.getFrameSize().height * (DesignWidth / cc.view.getFrameSize().width);
            cc.view.setDesignResolutionSize(DesignWidth, height, cc.ResolutionPolicy.FIXED_WIDTH);
        }
	}else{
        cc.view.setDesignResolutionSize(DesignWidth, DesignHeight, cc.ResolutionPolicy.EXACT_FIT);
    }

    if(this.isIphoneX){
        cc.find("Canvas/other/user1").getComponent(cc.Widget).left += this.node.width * (44/812);
        cc.find("Canvas/other/user2").getComponent(cc.Widget).left += this.node.width * (44/812);
    }
},  

});
截图都是用的模拟器
分辨率:19201080


分辨率:1500
750

fenbi
分辨率:2436*1125

分辨率:1920*1600

DEMO下载地址:
fitScreenDemo.zip (353.7 KB)

8赞

mark一下

mark

mark

这个横屏还是相对好解决 竖屏iphone x就有下巴和title的问题

创建以一个Node居中,该node不随着屏幕变动,保持居中,把主要内容全部加载到这个node上


根据这个比例空出额头和下巴

感觉,遇到奇葩机型时,直接把竖屏转横屏,应该会效果更好些?

mark

收藏。

mark

mark

2.0的,是不是用不了这方法

mark一下

2.0.8适配有问题,.6可以

谢谢分享

感谢分享

please i wish a code for vertical “portrait” game, please help me

。。。。

感谢分享

markmarkmark