动态加载的节点怎么做适配?

比如我设计分辨率是1334750,屏幕分辨率是19201080,在界面里面需要动态生成很多个5050的图片节点,在设计分辨率里面5050是刚刚好的,然后到了19201080或者更大分辨率的时候这个5050就会显得很小,动态生成的这些节点放在一个widget left 50 bottom 50 size(0,0)的父节点下面。怎么弄才能让动态生成的节点在大的分辨率下也跟着变大呢?

跟着变大?可以在每个新生成的图片节点上挂载一个组件,onEnable函数中去根据实际分辨率去设置节点的scale或者size。

就是不知道这个scale该咋去计算不同分辨率该放大多少

scaleX应该这么算 1/1334=scaleX/实际分辨率;scaleY一样的.

没看明白1/1334=scaleX/实际分辨率是啥意思

基于你分辨率 1334 / 50 = 26.68 750 / 50 = 15 , 屏幕分辨率 1920 / 26.68 = 71.9 1080 / 15 = 72 :13: 我想这个应该可以满足你吧

大概是这么个需求,现在是背景的格子会根据屏幕放大了,导致我动态生成的没法匹配上背景图上的大小

我根据你这样计算1334/50算出能放下26.68个,然后1920/50能放下38.4,然后38.4/26.68得到放大1.43倍大小这样在1920的画面下动态生成的这个已经超出了背景图的格子了

你说的现象是你的理论分析还是真机测试出的结果呢,你的设计分辨率 1334*750 在真机 1920*1080 下会显得 50*50 小吗,并不会吧.只要你代码没有手动根据设备分辨率调整设计分辨率,设计分辨率的 1334 就会被完整的显示在 1920 上.根本不需要你做任何设置, 50 就会被放大到 50*1920/1334 的大小,因为 1334 已经被放大到 1334*1920/1334 了.

我也想理论上是这样的,但是在真机上不行。后面我在每个动态生成的节点上调用这个缩放大小就好了
let des = cc.view.getDesignResolutionSize();
let frameSize = cc.view.getFrameSize();
let sx = frameSize.width / des.width;
let sy = frameSize.height / des.height;
let min = Math.min(sx, sy);
let max = Math.max(sx, sy);
return Math.floor(max/min* 100)/100;