一个棋类游戏,游戏的背景图铺满canvas,且背景图上画有棋盘,想请教大家的问题是。
如何做到适配分辨率不留更黑边,理论上我的应该是高度适配,去处理宽度。因为需要高度上下顶边。且背景图上的可操作的点(或者说坐标)不会随着设备改变而发生偏移。
希望热心大佬能给出一个最佳的解决方案

背景图和棋盘要分开吧
我的做在一起了 会有影响吗 还可以适配吗
有影响啊,比例不变的话,肯定会有黑边,比例变了,棋盘坐标就不对了
那是要棋盘和背景分开来吗
背景隔离出来,然后根据屏幕的size 同比例去缩放你bg
现在美术心都这么大吗 直接给一张UI和背景合在一起的图 都不切一下
我是不是可以这么理解,首先,需要背景和棋盘分离开。
然后 根据屏幕的比例,去等比例缩放棋盘。
至于背景,因为基本都是相同的纹理,所以缩放无所谓,只要保证不出现黑边就可以了。

标注的1和2分开 缩放1就行了 2不管 该是多大 就是多大(或者根据不同屏幕去算一个比率缩放也行)
好的 谢谢老哥~
let screen = cc.view.getFrameSize()
let screenRatio: number = screen.width / screen.height;
let bgRatio: number = this.node.width / this.node.height;
//下一帧设置缩放
setTimeout(() => {
if (!cc.isValid(this, true)) return
// 比较两者的宽高比,按需要调整背景图片的scale
if (screenRatio > bgRatio) {
// 屏幕比背景图片更宽,需等宽适配
this.node.scale = cc.winSize.width / this.node.width;
} else {
// 屏幕比背景图片更高,需等高适配
this.node.scale = cc.winSize.height / this.node.height;
}
}, 0);
试试这个,把他挂在bg下面
其实还有个更简单的,bg背景直接挂 widget 撑满你的分辨率,主要是看你的背景是比较单调的那种,可以试试,如果是复杂的背景就不能单纯的挂widget,会产生形变
好的,谢谢老哥的热心!另外有个问题是,如果我给bg设置了缩放,那么bg下的按钮子节点,会因为缩放位置出现变化,比如按钮在背景的边缘,如果这时候放大了背景,这个时候就会出现按钮一部分出界的情况(应该是因为背景放大了,导致按钮跟着放大,但按钮的位置没有动态改变吧)我给按钮加了widget也不好使,这是为什么呢
你的按钮只是看着在bg上 其实他不是bg的子节点
这话是啥意思呢 
放大bg 不会对btn有影响
你的bg就是单纯的 一张sprite展示 ,没有子节点
