В AppDelegate.cpp у нас есть следующий код в bool 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));
Почему мы берем МИН отношения высоты или ширины? Почему мы не всегда берем либо высоту, либо ширину? Не будет ли это непоследовательностью?
Поскольку ресурсы, которые мы используем, имеют фиксированный размер (например, в каждом блоке мы выбираем большие, средние или маленькие ресурсы), не отличается ли масштабирование для разных соотношений сторон, которые могут иметь одинаковую высоту или ширину? Не приведет ли это к еще более серьезным проблемам, таким как несоответствие физики и изображений на экране?