请问客制化动态背景适配?

小弟目前做的项目有只有两个背景需要适配,想问如何写个简单的脚本。

  • 萤幕长大于宽时,背景比例维持 9 :16

  • 萤幕宽大于长时,背景比例维持16 :9

小弟我写了个简单的脚本

结果如下 长大于宽时,比例正确(16:9)


宽大于长时 比例错误 (没有9:16) 测量大约是1:0.8
[detectscreen.rar|attachment]

专案在此,还请各路大神帮忙看看 <(_ _)>
detectscreen.rar (1.3 MB)

不是很懂你的需求和做法,为什么不考虑用scale属性或者widget组件呢?

就是 手机横版 跟直版要用不同的background 直版的ui要整个换位置 不过主游戏位置还是大致相同

你这不如去搜下横竖屏切换还好些吧?

侦测倒是可以
我的问题是背景的比例 我的designResolution都改成 750:1334(9:16)了 效果并没有如我预期
如果我一开始Canvas设定成750:1334(9:16) 就可以达到我要的效果(如下图),但脚本改就没办法

总觉得你这个,背景加个widget组件就行了啊

我是改了canvas的size 我的bg是有widget的
bg没有跟着改為1334:750

因为现在只是一个背景 ,真的专案我怕有很多东西,要真不行跟着widget走 我一个一个要修的版面慢慢修呗

designResolution和fitWidth/Height好像只是用来拉伸对齐的,实际画布尺寸一直没变。不知道你要的是不是这种效果

1赞

这里bg的widget对齐的并不是设计尺寸,而是画布尺寸,画布尺寸并没有变成750x1334,所以背景尺寸没变,看起来有差别是因为你适配方式从宽适配改成高适配的时候缩放比例变化了

还差一点 我必须固定16:9 或 9:16

并不可以16:10之类的 也就是16:10时 我需要有黑边在那个多出来的1上


我这里是直接设置的画布尺寸,要不你试试?
我这里为了测试,改成了点击方法挂在bg上的

第一取cc.winSize.
第二, 不需要设置designResolution 这些参数, 勾选默认的fitwidth+fitHeight即可.

脚本改成您这样了,
canvas改大小了 但bgcontent没有跟进(bg有widget)

我记得你align mode用的once,换其他的

1赞

有了 稍微研究一下 还可以根据cc.view.setResizeCallback来取代按按钮 完美解决!!! ^^ 感谢感谢