2016-11-25 61 views
1

在AppDelegate.cpp,我们在布尔AppDelegate::applicationDidFinishLaunching()下面的代码:为什么内容

glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::SHOW_ALL); 
auto frameSize = glview->getFrameSize(); 

// if the frame's height is larger than the height of medium size. 
if (frameSize.height > mediumResolutionSize.height) 
{   
    director->setContentScaleFactor(MIN(largeResolutionSize.height/designResolutionSize.height, largeResolutionSize.width/designResolutionSize.width)); 
    //Add Code to use large assets 
} 
// if the frame's height is larger than the height of small size. 
else if (frameSize.height > smallResolutionSize.height) 
{   
    director->setContentScaleFactor(MIN(mediumResolutionSize.height/designResolutionSize.height, mediumResolutionSize.width/designResolutionSize.width)); 
    //Add Code to use medium assets 
} 
// if the frame's height is smaller than the height of medium size. 
else 
{   
    director->setContentScaleFactor(MIN(smallResolutionSize.height/designResolutionSize.height, smallResolutionSize.width/designResolutionSize.width)); 
    //Add Code to use small assets 
} 


director->setContentScaleFactor(MIN(largeResolutionSize.height/designResolutionSize.height, largeResolutionSize.width/designResolutionSize.width)); 

为什么我们采取高度或宽度的比值的MIN?为什么我们不总是采取高度或宽度?这不会不一致吗?

由于我们使用的资产的大小是固定的(例如,在每个区块中,我们选择大型,中型或小型资产),对于不同的纵横比率,缩放比例不同,可能具有相同的高度或宽度?这不会导致更糟糕的问题,如屏幕上的物理和图像不匹配吗?

回答

0

因为如果您选择最大比例尺,它将不适合高度/宽度(取决于方向)。

例如设计分辨率960x640

背景精灵1024x768

1024/960 * 1024 ≈ 1092的分辨率 - 最大

640/768 * 1024 ≈ 853 - 如果你选择最大的BG与将被更广泛的再设计分钟

左右, 80px宽的条纹将不在屏幕上。

否则,您的宝宝会适应设计的宽度,除了一些黑色条纹(960-853)/ 2 px宽。

Related information