Там нет реального Метрика как cm
вариант в cocos2dx и на самом деле нам не нужно это.
Но cocos2D-x 2.x и 3.x имеют очень легкое решение для проблемы с несколькими разрешениями (iDevices или Android-устройства) Как вы видели в Multi-resolution support document.
На самом деле вам просто нужно установить DesignResolution
, а затем просто представьте, что ваше целевое устройство будет иметь это разрешение.
Если целевое устройство действительно имеет это разрешение (или любое другое с одинаковым соотношением), то cocos2d будет работать, чтобы исправить экран, и ваша игра будет выглядеть одинаково на всех устройствах.
И когда соотношение целевого устройства отличается, у вас есть много вариантов (policy
), чтобы управлять этим.
Например, если вы используете политику Exact fit
, cocos2d заставит вашу игру (и дизайн) поместиться на экран целевого устройства (без этой черной границы).
уместится
Все приложения видны в указанной области, не пытаясь сохранить исходное соотношение сторон. Искажение может произойти, и приложение может выглядеть растянутым или сжатым.
Для более подробной информации просто взгляните на official wiki.
Помимо всего вышеизложенного, я нашел This Link (от двигателя V-Play) и его определение Safe Zone
действительно интересно, и я настоятельно рекомендую вам использовать рекомендованное значение этой страницы для вашей работы, как и я.
Хотя эта ссылка принадлежит другому двигателю, но описание поможет вам лучше понять все.Вот карта между этой страницей с точки cocos2d-х термины:
V-Play :: = почтовый ящик> Cocos2dx :: Показать все
V-Play :: ZoomToBiggerSide => Cocos2dx :: NoBorder
Кроме того, вы даже спросить о требуемых размерах изображения в развитии cocos2dx:
Как вы знаете, различный размер изображения не об игре-смотреть в разном resolut и вы можете опубликовать свою игру с одним размером для каждого актива, и ваша игра/приложение выглядит хорошо во всех разрешениях с приведенным выше описанием для политик разрешения.
Но нам нужно несколько изображений для каждого актива, чтобы оптимизировать использование памяти. в этом случае (как решение cocso2dx) мы проверяем размер устройства и маркируем соответствующий набор изображений (каждый набор изображений находится в одной папке с одинаковой структурой/разным размером, например HDR/HD/SD) в качестве папки по умолчанию ресурса:
CCSize frameSize = pEGLView->getFrameSize();
if (frameSize.height > mediumResource.size.height)
{
searchPath.push_back(largeResource.directory); //mark HDR default
pDirector->setContentScaleFactor(largeResource.size.height/designResolutionSize.height); //handle scaling because of different between our programming-design-resolution and artist-design-canvase-resolution
}
else ...
Благодарим вас за ответ! –