给跪了



老早就有这个疑问了,哈哈 也是一个一个去试的
谢邀!(好吧我是自己跑过来的)
刚好今天也折腾了下这个问题,正好整理分享一下,如有错误欢迎指出。。。
cocos 里边是有好多个 size、rect,搞得我也一脸懵逼,大概梳理一下就是这几个:
winSize (inPixels), visibleSize (inPixels), designResolusionSize 和 frameSize
下面说明下这几个东西的关系:
winSize = winSizeInPixels = visibleSIze, 实际开发的计算中,大多数情况下就用这一个 visibleSize !!!
visibleSizeInPixels 是 visibleSize 的基础上乘以各种适配策略下的缩放比例,是的就是你的实际截图测量的大小
designResolusionSize 是 canvas 组件下设置的设计分辨率
frameSize 是 cc.game.container 的 width height
除了各种 size 还有各种 rect,好像也不多,就两个:
viewportRect, visibleRect
visibleRect 是实际开发的计算中用到的
viewportRect 是 gl 下的 viewport 概念, 只不过他的 x y 值是相对于 游戏坐标系下进行计算的
======| 分割线 |===========================
总结一下,其实大多数情况下,只要关心 visibleSize 就好了~
顶楼上全部
谢谢回答,这些东西不明白的人应该还是很多的,否则快半年的帖子也不会顶上来
你所说的WinSize==VisibleSize,但是在我上面的数据getWinSizeInPixels()与getVisibleSizeInPixel()是不一样的,应该是不一样的吧
仔细看,
visibleSizeInPixels 跟
winSize winSizeInPixels visibleSIze
是不一样的
从2dx时代开始就不明白的说 ·.·
·.·
我知道啊,单看接口名理解就是单位不一样嘛,如果WinSize==VisibleSize那按照你说的乘以各种适配策略下的缩放比例之后,也应该是一样的
太JB乱了,删除掉吧,留一两个用用的就行了
嗯嗯,现在的实现 里,winSize 跟 winSizeInPixels 是一个东西,2.0 准备移除里,所以这个可以不用管他,容易混淆

cc.view.getDesignResolutionSize();//Returns the designed size for the view. Default resolution size is the same
这个属性我有点疑问方便解答吗…分别在项目设置与当前场景的canvas属性里更改了设计分辨率,但启动当前场景后打印出来的cc.view.getDesignResolutionSize()和我改的设计分辨率不一致。。。
有碰到过这种情况吗?重启过编辑器了,creator1.9.0forMac的
这个就是需要自己都打印一遍就心里有数了,。。。
然后下一次使用再次打印一次。。。
正在被这个问题困扰,并且看了解答还是搞不明白
顶上去
抽空在主流的几个iPhone机器上都打印一遍,方便大家借鉴。
var s1 = cc.director.getVisibleSize(); //获取运行场景的可见大小
console.log(---getVisibleSize=${JSON.stringify(s1)});
let s2 = cc.director.getWinSize();//获取视图的大小,以点为单位
console.log(---getWinSize=${JSON.stringify(s2)});
let s3 = cc.director.getWinSizeInPixels();//获取视图大小,以像素为单位
console.log(---getWinSizeInPixels=${JSON.stringify(s3)});
let s4 = cc.view.getFrameSize();//Returns the frame size of the view.
console.log(---getFrameSize=${JSON.stringify(s4)});
let s5 = cc.view.getViewPortRect();//Returns the view port rectangle.
console.log(---getViewPortRect=${JSON.stringify(s5)});
let s6 = cc.view.getVisibleSize();//Returns the visible area size of the view port.
console.log(---getVisibleSize=${JSON.stringify(s6)});
let s7 = cc.view.getVisibleSizeInPixel();//Returns the visible area size of the view port.
console.log(---getVisibleSizeInPixel=${JSON.stringify(s7)});
let s8 = cc.view.getDesignResolutionSize();//Returns th
console.log(---getDesignResolutionSize=${JSON.stringify(s8)});
/**
- iphone 8 plus
JS: —getVisibleSize={“width”:751,“height”:1334}
JS: —getWinSize={“width”:751,“height”:1334}
JS: —getWinSizeInPixels={“width”:751,“height”:1334}
JS: —getFrameSize={“width”:1242,“height”:2208}
JS: —getViewPortRect={“x”:-0.51727294921875,“y”:0,“width”:1243.0345458984375,“height”:2208}
JS: —getVisibleSize={“width”:751,“height”:1334}
JS: —getVisibleSizeInPixel={“width”:751,“height”:1334}
JS: —getDesignResolutionSize={“width”:751,“height”:1334}
/
/* - iphone 8
JS: —getVisibleSize={“width”:750,“height”:1334}
JS: —getWinSize={“width”:750,“height”:1334}
JS: —getWinSizeInPixels={“width”:750,“height”:1334}
JS: —getFrameSize={“width”:750,“height”:1334}
JS: —getViewPortRect={“x”:0,“y”:0,“width”:750,“height”:1334}
JS: —getVisibleSize={“width”:750,“height”:1334}
JS: —getVisibleSizeInPixel={“width”:750,“height”:1334}
JS: —getDesignResolutionSize={“width”:750,“height”:1334}
/
/* - iphone 11 / xr
JS: —getVisibleSize={“width”:750,“height”:1624}
JS: —getWinSize={“width”:750,“height”:1624}
JS: —getWinSizeInPixels={“width”:750,“height”:1624}
JS: —getFrameSize={“width”:828,“height”:1792}
JS: —getViewPortRect={“x”:0,“y”:-0.447998046875,“width”:828,“height”:1792.89599609375}
JS: —getVisibleSize={“width”:750,“height”:1624}
JS: —getVisibleSizeInPixel={“width”:750,“height”:1624}
JS: —getDesignResolutionSize={“width”:750,“height”:1624}
JS: 适配状态栏,高:88,
/
/* - iphone 11 pro max
JS: —getVisibleSize={“width”:750,“height”:1624}
JS: —getWinSize={“width”:750,“height”:1624}
JS: —getWinSizeInPixels={“width”:750,“height”:1624}
JS: —getFrameSize={“width”:1242,“height”:2688}
JS: —getViewPortRect={“x”:0,“y”:-0.6719970703125,“width”:1242,“height”:2689.343994140625}
JS: —getVisibleSize={“width”:750,“height”:1624}
JS: —getVisibleSizeInPixel={“width”:750,“height”:1624}
JS: —getDesignResolutionSize={“width”:750,“height”:1624}
JS: 适配状态栏,高:132
*/
大哥怎么不骂了呀 