【2.2.0竖屏游戏IPhoneX刘海留黑边】

加两行代码:

jsb-builtin.js中修改window.innerHeight,可以把修改好的文件放构建模板,不用每次修改。

覆盖掉cc.view.convertToLocationInView,触摸位置偏移了,需要调整,这段代码放在用户代码任意位置即可。

1赞

大佬,我怎么用不了这个方法去改 cc.view.convertToLocationInView 的函数。 就是第二张图的方法,我挂载我的登录界面, 但是这个函数好像没有被覆盖成功。 还有一个, 我在 引擎的 cc.view里面去修改源码, 我修改 y-=20 在 let y 赋值之后。 但是没有起到作用,不知道是为什么。

还有一个问题, 因为近期我在研究ios13 h5 版app的 适配问题, 我在想如何在地址栏出现的情况下继续保持全屏。 我使用
cc.game.container.style.height = window.innerHeight + ‘px’;
cc.game.container.style.width = window.innerWidth + ‘px’;
cc.game.canvas.style.height = window.innerHeight + ‘px’;
cc.game.canvas.style.width = window.innerWidth + ‘px’;

这个方法强制在 地址栏下全屏了。 但是按钮出现了偏移。 问题是 这个偏移不是全部偏移。 底部的按钮没有偏移。 只有顶上的按钮偏移了。 暂时没有什么好的解决方法。

这个问题已经解决了,
function offsetRepair(offset){
cc.view.convertToLocationInView = function convertToLocationInView(tx, ty, relatedPos, out) {
var result = out || cc.v2();
var posLeft = relatedPos.adjustedLeft ? relatedPos.adjustedLeft : relatedPos.left;
var posTop = relatedPos.adjustedTop ? relatedPos.adjustedTop : relatedPos.top;
var x = this._devicePixelRatio * (tx - posLeft);
var y = this._devicePixelRatio * (posTop + relatedPos.height - ty);
y -= offset
if (this._isRotated) {
result.x = cc.game.canvas.width - y;
result.y = x;
} else {
result.x = x;
result.y = y;
}
return result;
}
}

在我们自己的工程的 web 端适配类里面加上了这个方法,然后计算偏移量,进行处理。 这个问题告一段落落。找了2天才找到你的这个建议,然后了解了这个方法之后解决了。 非常感谢:joy:

1赞

你上面这个方法是在什么时候调用的呀,看不太懂