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 – оптимальный алгоритм для большинства случаев, обеспечивающий адаптивность и качество изображения. Координаты отсчитываются от левого верхнего угла.