для моей системы важна точность. Используется сетка фреймов, уменьшено кол-во фреймов. Хотя фреймы двигают за курсором и все норм. У меня все равно возникает сомнение насчет моей наработки.
вот у нас есть размеры 4:3, и это не весь экран, тут остаются боковины. Короче, точка отсчета начинается в нижнем левом углу экрана 4:3. Начинать оттуда не удобно строить систему. А мне нужно узнать какой размер экрана.
В DGUI выкрал 0.544 , 0/302 работает идеально - полный размер FullScreen экрана. А координаты начала -0.144, 0.
Недавно пришла в голову а вдруг размеры все же скалируются от разрешения монитора, и все это у кого то съедет. Не знаю как это происходит
есть волшебные функции разрешения экрана монитора
BlzGetLocalClientWidth()
BlzGetLocalClientHeight()
можно ли с ними делать соотношение
scale = width/height <= у меня 1920/1080 (16:9)
w = 0.8*scale <+ 1.42
h = 0.6*scale <= 1.06 (тут могли бы и не трогать!!)
Правильно ли будет? Че то сильно сомневаюсь в этом, тк у меня за пределы размеры экрана вышли, до крайних фреймов не курсором не достаю. И думаю, нужно ли это или нет. Хотя не сильно и мешает

Принятый ответ

Могу сказать, что размеры точно скалируются, так как если монитор 4:3, то точка отсчета будет 0, 0.
Где-то на хайве были системы с переводм из системы координат вк в пиксели (вроде оно).
`
ОЖИДАНИЕ РЕКЛАМЫ...
3
4
3 года назад
Отредактирован Padparadscha
3
Могу сказать, что размеры точно скалируются, так как если монитор 4:3, то точка отсчета будет 0, 0.
Где-то на хайве были системы с переводм из системы координат вк в пиксели (вроде оно).
Принятый ответ
0
32
3 года назад
0
Не рекомендовал бы лезть с интерактивными фреймами за пределы 0.8 0.6 (оно же 4 на 3) в принципе
0
27
3 года назад
Отредактирован MpW
0
Padparadscha, спасибо) но нужно самому понять, и потестить, сравнить. щас ничего не понимаю.

Bergi_Bear, просто мне нужно подбирать координаты за пределами же 4:3, по бокам.
1
4
3 года назад
1
МрачныйВорон, под катом функции для перевода из пикселей в DPI и обратно. Из той наработки, что я кидал выше. На луа.
кат
function PXTODPI()
    return 0.6 / BlzGetLocalClientHeight()
end

function DPITOPX()
    return BlzGetLocalClientHeight() / 0.6
end

function FrameBoundWidth()
    return (BlzGetLocalClientWidth()-BlzGetLocalClientHeight()/600*800)/2
end

function GetScreenPosX(x)
    return (-FrameBoundWidth()+x)*PXTODPI()
end

function GetScreenPosY(y)
    return y*PXTODPI()
end

function ScreenRelativeX(x)
    return (x * DPITOPX()) * (0.8/BlzGetLocalClientWidth())
end
Собственно, GetScreenPosX(x) и GetScreenPosY(y) переводят из пикселей в DPI.
0
27
3 года назад
Отредактирован MpW
0
думаю наработка с хайва в самый раз эта.
почему на jass у меня норм координаты и размеры подобраны. Лично на глазок подбирал. Переписал на Lua, и все съехало. Попробовал эту наработку, и все норм
Загруженные файлы
0
27
3 года назад
0
текперь понял почему не работало ничего. Попутал FRAMEPOINTS при движении, при перезаписи на LUA от другого взял и вставил коорды с размерами.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.