2

У меня есть баннер admob в нижней части экрана.Cocos2dx. Как получить длину 1 см (в реальной жизни) в пикселях для любых разрешений экрана?

Я хочу компенсировать все, чтобы ничто не было закрыто баннером.

Я понятия не имею, как получить высоту баннера admob ДИНАМИЧЕСКИ.

Для iphone4, 120 это высота AdMob, но для Iphone 6, это 100.

Я предполагаю, что это что-то связано с экрана масштабируются, но я не мог понять.

Мой экран установлен, как это в AppDelegate.cpp

cocos2d::Size designResolutionSize = cocos2d::Size(1136, 768); 

and 

glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::NO_BORDER); 

ответ

0

Там нет реального Метрика как 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 ... 
+0

Благодарим вас за ответ! –

Смежные вопросы