Как поменять разрешение экрана в мобильной игре

Обновлено: 04.07.2024

Приветствую, друзья! Все таки решил написать урок и одновременно ответить на вопрос многих игроделов: “Как сделать подстройку игры под любой размер экрана андроид девайсов?” Сам когда-то долго мучился с этим вопросом, но то время прошло и теперь я хочу немножко облегчить жизнь и вам.
Рассмотрим всё на примере.

Для начала поставим правильное масштабирование проекта (чтобы не появлялись черые полосы при выводе игры через Intel XDK). “Правильным” в данном случае будут два вида масштабирования: Scale Outer и Scale Inner . Пару слов про них:

Scale Outer – при несовпадении пропорций окна (Windows Size) на экране девайса отображается содержание проекта и за его пределами.

Scale Inner – при несовпадении пропорций окна (Windows Size) на экране девайса отображается цетральная часть проекта, а все остальное отсекается.

Мне больше нравится работать со Scale Outer и на его примере я и сделаю урок. Выбераем этот параметр в настройках проекта:


Размер окна (Windows Size) - 1280х720 . Дальше на сцену добавим несколько объектов: небо, горы и кнопки:

На основе этих изображения вы и увидите, как можно настроить игру под любое разрешение экрана. В этом нам поможет такая нехитрая функция у слоя – “viewport”. Она как-бы определяет минимальные и максимальные видимые границы слоя. Есть 4 параметра этой функции: ViewportTop, ViewportBottom, ViewportLeft, ViewportRight . Каждая отвечает за свою границу экрана:

ViewportTop, ViewportLeft – это минимальные значения границ и они всегда равны 0.

ViewportBottom, ViewportRight – максимальные значения и они нам показывают то самое истинное разрешение девайса на котором запущена игра, например если у смартфона HD-разрешение, то ViewportBottom = 1280, а ViewportRight = 720.

Хватит теории, перейдем опять к созданному проекту. Вот так выглядит вся сцена:


Каждый объект нужно по отдельности привязать к нашим границам – viewport-ам.
Сначала небо:

Делим правый видимый порт на 2 - получаем средину по x-координате, делим нижний видимый порт на 2 - получаем средину по y-координате и перемещаем небо по этим координатам, тоесть в центр, размер спрайта выставляем с помощью тех же максимальных границ.
Дальше горы. Image point поставлю внизу, чтобы определить низ картинки:

Разъяснять события думаю нету смысла. Они схожи с предыдущими, смотрим:

Чтобы горы были по размеру экрана, я прописал еще одно маленькое событие:

В нем сказано: если ширина гор меньше максимальной правой видимой границы, то ширина и высота увеличивается на 2% и так пока ширина гор не совпадет, с ViewportRight-ом. Обведенное кружочками – это те самые 2%.

Следующий этап – кнопки. Подробно расскажу про одну из них, про остальные посмотрите в примере, который я скину ниже.
Кнопка меню:


По иксу кнопка имеет координату 1190, а максимальная граница 1280, сейчас макс граница – это заданный мною в начале урока размер окна. Координата кнопки по х на 90 пикселей меньше. Значит, чтобы на любом девайсе, с любым разрешением экрана она находилась там же в уголке, на расстоянии 90 пикселей от правой границы, нужно прописать событие:

Кнопки можно регулировать и относительно нижнего или верхнего Viewport, но здесь я этого не делал, справитесь сами.
Как ведет себя готовый проект на разных разрешениях экранов можно посмотреть в эмуляторе Intel XDK :

Как видите все четко подстраивается, как мы и хотели.

Примечание: Если вы работаете, как я, с Intel XDK, то, чтобы viewport работал, перед собтиями связанными с ним должно обязательно быть событие: “Every tick”, оно может быть и на layout раньше, главное, чтобы было. В моем примере оно на загрузочном уровне, который идет первым. Без этого события viewport-Ы в Intel XDK будут отображаться как “NAN”, тоесть их просто не будет. Не знаю с чем это связано, но это так. Если кто знает более простое решение проблемы, не стесняйтесь, пишите.

как изменить разрешение экрана на андроиде

Внимание! Изменение разрешения экрана может привести к проблемам, поэтому все дальнейшие действия вы выполняете на свой страх и риск!

Способ 1: Системные средства

В последнее время на рынке всё чаще появляются девайсы с матрицами высокого (2К и выше) разрешения. Разработчики таких гаджетов понимают, что это не лучшим образом сказывается на производительности, поэтому добавляют в прошивку инструменты для соответствующей настройки.

Открыть настройки экрана для изменения разрешения в Android штатными средствами

Настройки соотношения сторон для изменения разрешения в Android штатными средствами

Выбор нового варианта для изменения разрешения в Android штатными средствами

Способ 2: Настройки разработчика

Разрешение экрана зависит от значения DPI (количества точек на дюйм), которое можно поменять в параметрах разработчика. Делается это следующим образом:

  1. Откройте «Настройки» и перейдите в пункты «Система»«Дополнительно»«Для разработчиков».

Открыть настройки для смены разрешения на Android посредством параметров разработчика

Если последний вариант отсутствует, воспользуйтесь инструкцией далее.

Выбор изменения DPI для смены разрешения на Android посредством параметров разработчика

Указать желаемое значение DPI для смены разрешения на Android посредством параметров разработчика

Применение настроек для смены разрешения на Android посредством параметров разработчика

Способ 3: Стороннее приложение (Root)

Для устройств с включённым рут-доступом стоит воспользоваться одной из сторонних утилит, которые можно получить из Google Play – например, Screen Shift.

    Запустите приложение после установки, затем разрешите использование root и тапните «ОК».

Выдать права средству для смены разрешения на Android посредством сторонней программы

Активировать настройки для смены разрешения на Android посредством сторонней программы

Ввод новых значений для смены разрешения на Android посредством сторонней программы

Подтвердить ввод новых значений для смены разрешения на Android посредством сторонней программы

Способ 4: ADB

Если ни один из вышеприведённых методов для вас не подходит, остаётся самый сложный в исполнении вариант – задействование Android Debug Bridge.

  1. Загрузите требуемый софт по ссылке выше и установите его в соответствии с инструкцией.
  2. Активируйте на телефоне настройки разработчика (см. шаг 1 второго способа) и включите в нём отладку по USB.

Включить отладку по USB для смены разрешения на Android посредством ADB

Запуск командной строки для изменения разрешения на Android посредством ADB

Перейти к диску с утилитой для изменения разрешения на Android посредством ADB

Скопировать путь к утилите для изменения разрешения на Android посредством ADB

Перейти в командной стркое к утилите для изменения разрешения на Android посредством ADB

Разрешить отладку по USB для смены разрешения на Android посредством ADB

Проверка подключения телефона к компьютеру для изменения разрешения на Android посредством ADB

Ввод команды проверки DPI для изменения разрешения на Android посредством ADB

Найти нужные параметры в командной строке для изменения разрешения на Android посредством ADB

adb shell wm density *число*

Команда изменения плотности пикселей для смены разрешения на Android посредством ADB

adb shell wm size *число*x*число*

Как и на предыдущем шаге, замените оба *число* на нужные вам данные: количество точек по ширине и высоте соответственно.

Обязательно убедитесь, что между значениями находится символ x !

Ввод команды для смены разрешения на Android посредством ADB

Перезагрузка устройства для изменения разрешения на Android посредством ADB

Вернуть прежние значения для решения проблем изменения разрешения на Android посредством ADB

Использование Android Debug Bridge является универсальным способом, который подходит практически для всех устройств.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Еще статьи по данной теме:

У меня после выполненных шагов разрешение не поменялось.

А если уменьшить размер шрифта?

Перед тем, как начать разрабатывать игры на андроид, я долгое время делал браузерные flash игры. Там все легко, задал размер 700*525 и все. Когда столкнулся с андроидами, то и дело натыкался на слова, — «Размер экрана на андроид — это целая наука». Да, это наука. Но мы сегодня разберем на практике один пример. Я не сказал бы что он идеален, но практика показала, что он работает,
хоть и не устойчиво. Но я им пользуюсь.

Для начала грубо берем:
— самый маленький размер экрана 480*800
— самый большой размер экрана 1300*1920

… и создаем средний размер, у меня это 720*1280:

image

Теперь у нас есть 3-и размера экрана: x1, x2, x3.

Далее нам нужно узнать, какой у нас размер экрана, на котором запущена игра (все это делаем, в самом начале игры)? Во flash на языке as3 это:
var m_stageW:int = flash.system.Capabilities.screenResolutionX;
var m_stageH:int = flash.system.Capabilities.screenResolutionY;

После узнаем размера экрана в иксах:
var m_sizeStageX:int;

if (m_stageH<= 800)
m_sizeStageX = 1;
>
else
if (m_stageH> 1280)
m_sizeStageX = 3;
>
else
m_sizeStageX = 2;
>

У меня 7-ми дюймовый планшет. Размер экрана 600*1024. (У меня переменная m_stageH = 1024). Значит для меня m_sizeStageX = 2; Игра будет использовать для моего планшета графику размера x2.

Что такое рабочая зона?

Рабочая зона есть только в x2, x3. Она обозначена зеленым цветом:

image

Все что находится в рабочей зелёной зоне x3 должно влазить в рабочею зелёную зону x2:

image

Все что находится в рабочей зелёной зоне x2 должно влазить в экран x1:

image

Я использовал 3-и размера графики, что бы не было потери качества. Вся графика рисовалась под самый большой размер экрана x3. А после я ручками уменьшал для всех остальных экранов с отношением:
x2 = 70%
x1 = 50%

Например, кнопка выхода в меню. На самом большом экране она имеет размер 100*100 пикселей. Значит для экрана x2 уменьшаем картинку до 70% и получаем 70*70 пикселей. Для экрана x1 получится 50*50 пикселей. И в итоге у Вас получится три кнопки. По каждой для каждого экрана.

image

Грубо говоря, Вы делаете не одну игру, а сразу три. Ведь каждый объект игры нужно сделать трижды. Но это рационально для объектов, которые нужно выделить. Которые на переднем плане, с которыми игрок взаимодействует.

Давайте разберем меню игры. Красными стрелочками я обозначил те объекты, которые я сделал для всех размеров экранов:
— название игры;
— парень с девушкой;
— кнопки меню;

Эти объекты будут супер качественные. А все остальное: небо, дом, земля, хмарки будут размыты. Потому что я буду изменять их размер под каждый экран обычным растягиванием. А при растягивании, качество картинки теряется:

image

Все объекты сцены выставляются программно, желательно от центра экрана. Или берется соотношения сторон. Например, как я выставлял кнопки меню на предыдущем рисунке? Кнопку Play я поставил по центру. Кнопку перехода на сайт (та что слева) — это левая половина экрана разделена на 2. Правая кнопка (стереть прогресс) аналогично левой.

Поначалу дико неудобно, но со временем привыкаешь. Сейчас разрабатываю вторую часть игры Building cubes2, но уже на юнити. Flash в доску задолбал меня своими тормозами.

Всем спасибо, кто дочитал до конца. Пытался вкратце описывать, не растягивать скучными буквами. До нового скила.

Изменение разрешения экрана и DPI на Android возможно без ROOT. Если вы уменьшите разрешение экрана, производительность в играх и 3D-приложениях увеличится, и устройство будет двигаться более плавно. Как это сделать?

Как изменить разрешение экрана на Android без ROOT

Шаг 1. Включите USB-отладку на вашем телефоне и установите ADB и Fastboot на свой компьютер.

Для того, чтобы телефон мог принимать команды ADB, необходимо включить отладку USB в параметрах программирования. Если вы не знаете, как это сделать, обратитесь к нашему руководству, где мы показали вам, как вводить параметры программирования и включать отладку USB.

Чтобы вводить команды на компьютере, нам нужны комплекты ADB и Fastboot. Соответствующий архив можно загрузить непосредственно с серверов Google, используя следующую ссылку:

Загрузить ADB и Fastboot (инструменты платформы)

Распакуйте архив в любое место. Это даст вам папку с платформами, внутри которой есть, среди прочего, ADB и Fastboot.

Чтобы использовать этот инструмент, откройте окно командной строки, указав на папку с платформами. Вы можете сделать это очень легко. Все, что вам нужно сделать, это открыть папку с инструментами платформы, а затем удерживать клавишу Shift и щелкнуть правой кнопкой мыши в открытой папке. Выберите из выпадающего списка «Откройте здесь окно команд».

Откройте окно командной строки в папке «Инструменты платформы»

Появится окно командной строки, в котором мы можем ввести соответствующие команды, чтобы проверить текущее разрешение и установить новый. Конечно, для этого подключите телефон к компьютеру с помощью USB-кабеля.

Если вы не видите возможность открыть окно команды при щелчке правой кнопкой мыши в папке инструментов платформы, то, скорее всего, вы обновили Windows 10 до последней версии. В этом случае ознакомьтесь с нашим руководством, в котором показано, как восстановить параметр окна командной строки в контекстном меню в Windows 10.

Шаг 2: Проверьте текущее разрешение и DPI

В самом начале вы должны проверить, какое исходное разрешение у вас есть на телефоне и какой DPI установлен. Вы можете сделать это, подключив свой телефон к компьютеру с помощью USB-кабеля и введя следующие две команды в окне командной строки:

Размер оболочки adb wm

adb-оболочка в m-плотности

Проверьте текущее разрешение и DPI

Сохраните эти настройки, чтобы при необходимости вернуться к исходным значениям.

Шаг 3: измените разрешение и DPI на Android

Как только мы узнаем нашу резолюцию и оригинальный DPI, мы теперь можем изменить эти значения. В настоящее время самыми популярными решениями в смартфонах являются:

Поэтому, если у вас есть экран 1440p, вам следует уменьшить разрешение до 1080p или 720p. В свою очередь, если у вас есть экран 1080p, уменьшите разрешение до 720p. Переход на более низкие значения, чем 720p, может серьезно ухудшить качество отображаемого изображения, и я не рекомендую это делать.

Что касается DPI, то он очень коротко соответствует размеру элементов на экране и варьируется в зависимости от устройства. Вы должны поэкспериментировать с этим значением, добавив приблизительно 10-20 точек вверх или вниз для соответствующего разрешения.

Итак, как вы меняете разрешение и DPI? Мы будем использовать те же команды, что и на втором этапе, но на этот раз мы добавим к ним свои собственные параметры.

Чтобы изменить разрешение, введите в командной строке следующую команду:

Изменение разрешения экрана на Android

Вышеупомянутая команда установит разрешение 720p на ваш смартфон. Конечно, вы можете заменить значение любым другим, который вы хотите установить.

Затем отрегулируйте DPI до определенного разрешения. Для этого введите следующую команду:

плотность оболочки adb wm 280

Изменение DPI в Android

Эта команда установит DPI на 280, что во многих случаях соответствует значению для разрешения 720p. Как и выше, вы можете, конечно, ввести любое другое значение.

Читайте также: