# Пользовательские дополнения

На главную

## GetPosConverterParams( self )

Возвращает параметры окна игры. См. также: EVENT_POS_CONVERTER_CHANGED.

Существует две системы координат экрана игры - виртуальная и реальная. Обе начинают отсчёт с нуля, от верхнего-левого угла клиентской области окна (а в полноэкранном режиме - экрана), обе используются для указания местоположений и размеров виджетов. Виртуальные единицы существуют специально для позиционирования виджетов, поэтому, они используются наиболее часто - по ним позиционируются виджеты, позиционируемые по WIDGET_ALIGN_LOW, WIDGET_ALIGN_HIGH, WIDGET_ALIGN_CENTER, WIDGET_ALIGN_BOTH. Реальные (абсолютные) единицы используются крайне редко, только для тех виджетов, которые позиционируются по WIDGET_ALIGN_LOW_ABS.

Текущий виртуальный размер окна - по одной из осей равен базовому размеру окна, а по другой варьируется, в зависимости от пропорций окна (или экрана). Например, если пропорции окна шире чем 5:4, то виртуальная высота будет равна 1024, а ширина будет рассчитана относительно высоты, и в данном случае, будет превышать 1280. И наоборот, если пропорции окна уже 5:4, то виртуальная ширина будет равна 1280, а виртуальная высота будет рассчитана относительно ширины, и будет превышать 1024.

Реальный размер окна - размер в реальных пикселях операционной системы.

Базовый размер окна - это константы (1280x1024), используемые для рассчёта виртуального размера окна. Виртуальные ширина и высота окна никогда не бывают меньше этих базовых величин.

    -- класс
    WidgetsSystemSafe

    -- семантика
    function GetPosConverterParams( self )

    -- входные параметры
    нет

    -- возвращаемое значение:
    таблица с полями:
     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 )

    При резолюции экрана 1920x1200, в полноэкранном режиме, результат будет такой:

    fullVirtualSizeX: 1638.4001464844
    fullVirtualSizeY: 1024
    realSizeX: 1920
    realSizeY: 1200
    referenceVirtualSizeX: 1280
    referenceVirtualSizeY: 1024

#### Search: "CategoryWidgetsSystem"

CategoryWidgetsSystem
EventPosConverterChanged
EventUpdateShrinkRatio
FunctionWidgetsSystemGetImeSelectorInfo
FunctionWidgetsSystemGetPosConverterParams
FunctionWidgetsSystemGetStyle
FunctionWidgetsSystemGetTextureSize
FunctionWidgetsSystemSelectImeText
FunctionWidgetsSystemSetShrinkRatio

CategoryLuaApi CategoryFunction CategoryWidgetsSystem

На главную