Corona SDK: Адаптивные приложения и масштабирование

Corona SDK упрощает создание адаптивных приложений и игр, идеально отображающихся на разных устройствах благодаря гибкой системе масштабирования. Код и дополнительные материалы доступны на сайте itiprager.com.

Адаптивные приложения и масштабирование

В Corona SDK ширина и высота дисплея задаются в файле конфигурации, позволяя точно позиционировать объекты. Алгоритм масштабирования обеспечивает адаптивность к различным размерам экранов iPhone и Android.

По умолчанию используется алгоритм letterbox. Он масштабирует элементы с сохранением пропорций: на больших экранах объекты увеличиваются, на меньших – уменьшаются, гарантируя корректное отображение.

Алгоритмы масштабирования

Документация Corona SDK (ссылка на документацию) описывает другие алгоритмы масштабирования. Letterbox – наиболее распространённый, сохраняющий пропорции. Другие алгоритмы (например, zoom, inset, zoomFit) могут растягивать или сжимать изображения, искажая их.

Работа с изображением

Скачайте изображение pitch.png с сайта itiprager.com и поместите его в папку проекта с файлом main.lua.

Создайте переменную для изображения:

local pitch = display.newImage("pitch.png")

По умолчанию изображение находится в левом верхнем углу (0, 0). Для центрирования используйте contentCenterX и contentCenterY:

pitch.x = display.contentCenterX
pitch.y = display.contentCenterY

Изображение теперь центрировано. Проверьте отображение на разных устройствах (например, iPad Air и компактных моделях). Пропорции сохраняются благодаря адаптации к размеру экрана.

Задний фон и черные полосы

При использовании letterbox могут появляться черные полосы. Добавьте задний фон с помощью display.setDefault:

display.setDefault("background", { red = 0.843, green = 0.843, blue = 0.843 })

Это RGB-значение получено преобразованием из шестнадцатеричного формата (делением каждого компонента на 255).

Мы рассмотрели рабочее поле в Corona SDK, алгоритмы масштабирования и практическую работу с изображениями. Letterbox – оптимальный алгоритм для большинства случаев, обеспечивающий адаптивность и качество изображения. Координаты отсчитываются от левого верхнего угла.

Что будем искать? Например,программа