Возвращает параметры окна игры. См. также: EVENT_POS_CONVERTER_CHANGED.
Существует две системы координат экрана игры - виртуальная и реальная. Обе начинают отсчёт с нуля, от верхнего-левого угла клиентской области окна (а в полноэкранном режиме - экрана), обе используются для указания местоположений и размеров виджетов. Виртуальные единицы существуют специально для позиционирования виджетов, поэтому, они используются наиболее часто - по ним позиционируются виджеты, позиционируемые по WIDGET_ALIGN_LOW, WIDGET_ALIGN_HIGH, WIDGET_ALIGN_CENTER, WIDGET_ALIGN_BOTH. Реальные (абсолютные) единицы используются крайне редко, только для тех виджетов, которые позиционируются по WIDGET_ALIGN_LOW_ABS.
Текущий виртуальный размер окна - по одной из осей равен базовому размеру окна, а по другой варьируется, в зависимости от пропорций окна (или экрана). Например, если пропорции окна шире чем 16:9, то виртуальная высота будет равна референсной, а ширина будет рассчитана относительно высоты и будет больше референсной. И наоборот, если пропорции окна уже 16:9, то виртуальная ширина будет равна референсной, а виртуальная высота будет рассчитана относительно ширины, и будет превышать референсную. Виртуальный размер экрана никогда не может быть меньше референсного.
Реальный размер окна - размер в реальных пикселях операционной системы.
Референсный размер окна - задается в настройках игры (Масштаб интерфейса) и хранится в global.cfg
Базовое значение 1920х1080 Коэффициенты масштабирования (на них домножается референсное разрешение) для разных значений настройки: Минимальный - 1.33333 (2560х1440) Мелкий - 1.22222 Уменьшенный - 1.11111 Стандартный - 1 (1920х1080) Увеличенный - 0.94815 (1820х1024) - референсная высота соответствует старому значению (1280х1024) Крупный - 0.88888 Максимальный - 0.83333 (1600х900) Можно задать произвольное значение референсного разрешения через global.cfg (НЕ РЕКОМЕНДУЕТСЯ) gfx_reference_custom = 1 gfx_reference_size_x = [800:3840] gfx_reference_size_y = [600:2160] Корректность отображения на нестандартных референсных разрешениях не тестируется.
-- Библиотека common -- Объявление function GetPosConverterParams() -- входные параметры нет -- возвращаемое значение: таблица с полями: fullVirtualSizeX: number( float ) - текущий виртуальный размер окна по X fullVirtualSizeY: number( float ) - текущий виртуальный размер окна по Y realSizeX: number( float ) - реальный размер окна по X realSizeY: number( float ) - реальный размер окна по Y referenceVirtualSizeX: number( float ) - базовый виртуальный размер окна по X referenceVirtualSizeY: number( float ) - базовый виртуальный размер окна по Y -- пример local posConverter = widgetsSystem:GetPosConverterParams() LogInfo( "fullVirtualSizeX: ", posConverter.fullVirtualSizeX ) LogInfo( "fullVirtualSizeY: ", posConverter.fullVirtualSizeY ) LogInfo( "realSizeX: ", posConverter.realSizeX ) LogInfo( "realSizeY: ", posConverter.realSizeY ) LogInfo( "referenceVirtualSizeX: ", posConverter.referenceVirtualSizeX ) LogInfo( "referenceVirtualSizeY: ", posConverter.referenceVirtualSizeY ) При разрешении экрана 1920x1080, в полноэкранном режиме и настройках по умолчанию результат будет такой: fullVirtualSizeX: 1920 fullVirtualSizeY: 1080 realSizeX: 1920 realSizeY: 1080 referenceVirtualSizeX: 1920 referenceVirtualSizeY: 1080