peter: Итак. В git инcтед получил новые фичи для работы с темами. Опишу пока кратко для разработчиков. 1) scr.dpi в теме можно задать как число scr.dpi = 96 или диапазон scr.dpi = 96-140 По умолчанию считается, что задано 96. При этом в оконном режиме с включённой опцией HQ теперь окно будет автоматически подстраиваться под dpi экрана. Есть опция -dpi которой можно задать dpi экрана (хотя этот параметр берётся автоматически, но иногда для тестирования или решения проблем можно пользоваться). 2) проброшен низкий уровень для создания адаптивных тем. В теме можно задать scr.scale_aware=1 или = 2. В режиме 1 тема будет получать реальные соотношения сторон, но при этом масштабироваться как обычно. Что это значит? Например в теме стоит scr.w =800 scr.h = 600 а вы запускаетесь на мониторе 1920x1080, в таком случае theme.get'scr.w', theme.get'scr.h' вернёт 1020,600. Таким образом в init фукции вашей игры вы сможете сами подогнать тему под любое разрешение, чтобы вокруг не было пустого пространства. В целях облегчения заполнения фона сгенерированными картинками, предполагается использование pixels, так как они непосредственно до отрисовки не масштабируются и позволяют делать бесшовные изображения. (При использовании обычных спрайтов неизбежны ошибки округления координат). Перед тем как отрисовать фон или задать свойство bg у фона воспользуйтесь новой функцией plx:tosprite() -- она превратит пиксели в полноценный спрайт. Отличие tosprite от pxl:sprite() в том, что создаётся новый спрайт, который масштабируется в соответствии с настройками темы (например. используя сглаживание). А pxl:sprite() всегда возвращает спрайт отмасштабированный без учёта этого. 3) режим scr.scale_aware = 2 отличается от 1 тем, что пробрасывает в игру настоящее разрешение, а не виртуальное. И устанавливает масштабирование темы в 1.0. Это значит что вам придётся делать все самому: масштабировать картинки, элементы управления итд. К счастью, появился параметр: scr.gfx.scale (настройка темы), которая устанавливается автоматически в нужное значение при использовании режима 2 и влияет на масштаб картинок и элементов управления. Вы можете менять этот параметр из кода на lua или просто прочитать его. Новая версия INSTEAD с этими изменениями не выйдет до тех пор, пока новые функции не будут проверены энтузиастами! В теории, хорошо написать готовые модули на Lua для конченых пользователей. Если нужна сборка для вин - обращайтесь. соберу.
Ссылка:
http://instead-games.ru/forum/index.php?p=/discussion/comment/13852/#Comment_13852