cocos2d-x中的尺寸之三

时间:2022-09-09 23:54:00

通过上面两个文章的分析,我们在这个博文里做个总结:

CCEGLView::getFrameSize()返回的是窗口相对于屏幕像素的尺寸,这个尺寸,只要窗口没变化,值就不会变化

CCDirector::getWinSize()返回的是窗口自定义像素的尺寸

CCDirector::getWinSizeInPixels()返回的是窗口自定义像素的尺寸,经过scale之后的值,跟getWinSize和setContentScaleFactor有关系

CCEGLView::getDesignResolutionSize是返回窗口自定义像素的尺寸,跟CCEGLView::setDesignResolutionSize有关系

CCEGLView::getVisibleSize和CCDirector::getVisibleSize返回的是窗口能显示的像素尺寸,跟CCEGLView::setDesignResolutionSize设置分辨率时,用NoBorder作为参数时,才会有变化。

通过以上分析,我们可以用一个类比来更好的理解这些尺寸的关系,比如我们在公司,有一个可以屏幕,这个屏幕可以通过卷帘来变大变小

那么这个屏幕的大小就是CCEGLView::getFrameSize,只要这个卷帘不动,这个值是不会发生变化的。

CCDirector::getWinSize和CCEGLView::getDesignResolutionSize其实都是获取的是你的计算机在投影到墙上时的分辨率大小

有的时候字太小看不清,你可以放大或者缩小字体,这样会导致你的CCDirector::getWinSizeInPixels发生变化

最后如果放大字体之后,显示内容超出了你的屏幕大小,那么CCEGLView::getVisibleSize和CCDirector::getVisibleSize就会变小。