通过上面两个文章的分析,我们在这个博文里做个总结:
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就会变小。
原文链接:https://www.f2er.com/cocos2dx/346313.html