最新IDE 2.4.3,代码设置cc.view.setDesignResolutionSize(750, 1334, cc.ResolutionPolicy.EXACT_FIT);无效,论坛找了一圈,都是发了问题没人解决的,官方的开发人员列成issue然后就没然后了??
现在EXACT_FIT方案怎么实现?
最新IDE 2.4.3,代码设置cc.view.setDesignResolutionSize(750, 1334, cc.ResolutionPolicy.EXACT_FIT);无效,论坛找了一圈,都是发了问题没人解决的,官方的开发人员列成issue然后就没然后了??
现在EXACT_FIT方案怎么实现?
自己实现,后续入坑的可以看看。
Canvas设置完设计分辨率,勾选fitH、fitW,取消Weight组件。
在代码里,同时增加下述代码:
onLoad(){
cc.debug.setDisplayStats(false);
let currentSize = cc.view.getCanvasSize();
let designSize = cc.view.getDesignResolutionSize();
let scale = this.convertScale(designSize.width, designSize.height, currentSize.width, currentSize.height);
cc.Canvas.instance.node.scaleX = scale.scaleW;
// cc.Canvas.instance.node.scaleY = scale.scaleH;
// console.log( scale.scaleW);
}
convertScale(dW: number, dH: number, cW: number, cH: number): { scaleW: number, scaleH: number } {
let a = dW / dH;
let b = cW / cH;
let scaleW = 1;
let scaleH = 1;
if (a < b) {
scaleW = b / a;
} else {
scaleH = a / b;
}
return { scaleW: scaleW, scaleH: scaleH };
}
引擎采用fit_all模式,之后代码对画布拉伸。
老哥这个方法可以的,在2.4上比较完美的全屏方案