Liq. Posted July 27, 2018 Share Posted July 27, 2018 Всем привет, столкнулся я вот с какой проблемой. Написал простенький цифровой спидометр и решил проверить его на другом разрешении экрана и результат получился не очень хороший. При этом я использовал guiGetScreenSize(). На первом скрине разрешение экрана 1440х900, на втором 1280х720. Подскажите пожалуйста можно ли как-то исправить такую проблему? Буду очень благодарен! Link to comment
BrekBerry Posted July 27, 2018 Share Posted July 27, 2018 какие переменные ты используешь для адаптации под экраны? В даном случае,можно попробовать x,y = guiGetScreenSize() dxDrawText("000",x-300,y-500,0,0) Link to comment
Liq. Posted July 27, 2018 Author Share Posted July 27, 2018 12 minutes ago, BrekBerry said: какие переменные ты используешь для адаптации под экраны? В даном случае,можно попробовать x,y = guiGetScreenSize() dxDrawText("000",x-300,y-500,0,0) dxDrawText ( "km/h",sX*0.9,sY*0.91,sX*0.9875,sY*0.6066,tocolor(255,255,255,255),fontScale*2,font1,"right","top",false,false,false) Link to comment
kashtesov Posted July 27, 2018 Share Posted July 27, 2018 sX*0.9, именно из-за этого всё и пошло поехало. Ибо ширина экранов разная. dxGetTextWidth позволяет получить ширину текста, может пригодиться. Или тот же же "km/h" центровать по левой стороне, а спидометр по правой. 1 Link to comment
Liq. Posted July 27, 2018 Author Share Posted July 27, 2018 (edited) 30 minutes ago, SalwadoR said: sX*0.9, именно из-за этого всё и пошло поехало. Ибо ширина экранов разная. dxGetTextWidth позволяет получить ширину текста, может пригодиться. Или тот же же "km/h" центровать по левой стороне, а спидометр по правой. Я новичок в скриптинге, можешь на примере моей строки решить проблему я просто не до конца понимаю что да как и если не лень один пример с функцией dxGetTextWidth буду благодарен. Еще вопрос. Ты написал ширина экранов разная, но высота тоже, тогда проблема еще и в sY*0.91 или я не правильно понимаю? dxDrawText ( "km/h",sX*0.9,sY*0.91,sX*0.9875,sY*0.6066,tocolor(255,255,255,255),fontScale*2,font1,"right","top",false,false,false) Edited July 27, 2018 by Liq. Link to comment
BrekBerry Posted July 27, 2018 Share Posted July 27, 2018 (edited) 11 minutes ago, Liq. said: Я новичок в скриптинге, можешь на примере моей строки решить проблему я просто не до конца понимаю что да как и если не лень один пример с функцией dxGetTextWidth буду благодарен. Еще вопрос. Ты написал ширина экранов разная, но высота тоже, тогда проблема еще и в sY*0.91 или я не правильно понимаю? dxDrawText ( "km/h",sX*0.9,sY*0.91,sX*0.9875,sY*0.6066,tocolor(255,255,255,255),fontScale*2,font1,"right","top",false,false,false) Попробуй вот так: local screenW,screenH = guiGetScreenSize() local px,py = 1680,1050 local x,y = (screenW/px), (screenH/py)dxDrawText ( "km/h",x*956,y*567,x*0,y*0,tocolor(255,255,255,255),fontScale*2,font1,"left","center",false,false,false) ------------------------------- И центрировать по У(top) не обязательно. Edited July 27, 2018 by BrekBerry 1 Link to comment
Liq. Posted July 27, 2018 Author Share Posted July 27, 2018 1 hour ago, BrekBerry said: Попробуй вот так: local screenW,screenH = guiGetScreenSize() local px,py = 1680,1050 local x,y = (screenW/px), (screenH/py)dxDrawText ( "km/h",x*956,y*567,x*0,y*0,tocolor(255,255,255,255),fontScale*2,font1,"left","center",false,false,false) ------------------------------- И центрировать по У(top) не обязательно. Все сделал проблема осталась такая же. Может масштаб шрифта тоже нужно сделать под любое разрешение ? Link to comment
BrekBerry Posted July 27, 2018 Share Posted July 27, 2018 1 minute ago, Liq. said: Все сделал проблема осталась такая же. Может масштаб шрифта тоже нужно сделать под любое разрешение ? Ты же для двоих строк так сделал,надеюсь? Если же всё такие не помогло,попробуй для строки где "km/h", к координате самого спидометра(000), плюсануть другое,подходящее число. Пример:dxDrawText ( "000",x*956,y*567,x*0,y*0,tocolor(255,255,255,255),fontScale*2,font1,"left","center",false,false,false)dxDrawText ( "km/h",x*956,(y*567)+40*y,x*0,y*0,tocolor(255,255,255,255),fontScale*2,font1,"left","center",false,false,false) Link to comment
JeViCo Posted August 14, 2018 Share Posted August 14, 2018 Со слов в самом начале поста: поменяй local px,py = 1680,1050 на local px,py = 1440,900 ИЛИ заменить dxDrawText ( "km/h",x*956,y*567,x*0,y*0,tocolor(255,255,255,255),fontScale*2,font1,"left","center",false,false,false) На dxDrawText ( "km/h",x*956,y*567,x*0,y*0,tocolor(255,255,255,255),fontScale*2,font1,"right","center",false,false,false) и немного подбора координат тут (значения сделать поменьше) x*956 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now