Cocos2d x 为什么是内容

Cocos2d x 为什么是内容,cocos2d-x,cocos2d-x-3.0,cocos2d-x-3.x,Cocos2d X,Cocos2d X 3.0,Cocos2d X 3.x,在AppDelegate.cpp中,我们在boolAppDelegate::ApplicationIDFinishLaunching()中有以下代码: 为什么我们要取高度或宽度之比的最小值?为什么我们不总是选择高度或宽度?这不是前后矛盾吗 由于我们使用的资产在大小上是固定的(例如,在每个区块中,我们选择大、中或小资产),不同的高宽比(可能具有相同的高度或宽度)的缩放不是不同吗?这会不会导致更糟糕的问题,比如屏幕上的物理和图像不匹配?因为如果选择最大比例,它将无法适应高度/宽度(取决于方向) 例如

在AppDelegate.cpp中,我们在bool
AppDelegate::ApplicationIDFinishLaunching()
中有以下代码:

为什么我们要取高度或宽度之比的最小值?为什么我们不总是选择高度或宽度?这不是前后矛盾吗


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

因为如果选择最大比例,它将无法适应高度/宽度(取决于方向)

例如,设计分辨率
960x640

背景精灵的分辨率
1024x768

1024/960*1024≈ 1092
-最大值

640/768*1024≈ 853
-最小值

所以,若你们选择最大值,你们的bg将更宽,然后设计和条纹80px宽将脱离屏幕

否则,您的bg将适合设计宽度,旁边有一些黑色条纹(960-853)/2像素宽


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

例如,设计分辨率
960x640

背景精灵的分辨率
1024x768

1024/960*1024≈ 1092
-最大值

640/768*1024≈ 853
-最小值

所以,若你们选择最大值,你们的bg将更宽,然后设计和条纹80px宽将脱离屏幕

否则,您的bg将适合设计宽度,旁边有一些黑色条纹(960-853)/2像素宽

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));