Arimance Posted March 26, 2012 Share Posted March 26, 2012 Привет всем Помогите пожалуйста. Как подогнать gui window или gridlist, и dxDrawText\rectangle под любое разрешение монитора? На, например, 1600х900 то, что я создаю в guieditor'e, отображается отлично. На 1240х1280, например, окна и текст смещены вправо и вниз, причём dxDrawText расплывчито отображается. Суперформула x,y = guiGetScreenSize() w,h = x/1600,y/900 помогает только в правильном расположении и масштабировании gui окон и списков\кнопок, а label'ы и dxDrawText или не изменяется в размере, или отображается не там, где нужно Вот, что я делать пытался: local x,y = guiGetScreenSize() local w,h = x/1600,y/900 dxDrawText('текст',548.0*w,260.0*h,741.0*w,285.0*h,tocolor(255,255,255,255),1.0,"default-bold","center","center",false,false,true) Всё неровно выходит Link to comment
Scripting Moderators Sarrum Posted March 27, 2012 Scripting Moderators Share Posted March 27, 2012 viewtopic.php?f=141&t=33091 dxDrawRelativeText, dxDrawRelativeImage, dxDrawRelativeRectangle Не то? Link to comment
naz19 Posted March 27, 2012 Share Posted March 27, 2012 (edited) я думаю можно использовать что-то типа: local x,y = guiGetScreenSize() dxDrawText('текст',x/2,y/2,w,h,tocolor(255,255,255,255),1.0,"default-bold","center","center",false,false,true) --текст создастся по середине, размер задай статический Edited March 27, 2012 by Guest Link to comment
naz19 Posted March 27, 2012 Share Posted March 27, 2012 или addEventHandler('ивент',root, function() local x,y = guiGetScreenSize() if (x==1024) and (y==768) then dxDrawText('текст',x,y,w,h,tocolor(255,255,255,255),1.0,"default-bold","center","center",false,false,true)--даные которые наиболее подходят-- esleif (x==800) and (y==600) then dxDrawText('текст',x/2,y/2,w,h,tocolor(255,255,255,255),1.0,"default-bold","center","center",false,false,true)--даные подходящие для разширения 800x600-- end ) Link to comment
naz19 Posted March 27, 2012 Share Posted March 27, 2012 P.S.: в обих кодах должны быть ошибки, потому-что их написал Я хD Link to comment
Arimance Posted March 27, 2012 Share Posted March 27, 2012 local x,y = guiGetScreenSize() local w,h = 1600,900 dxDrawText('ололо (:',(548.0/w)*x,(260.0/h)*y,(741.0/w)*x,(285.0/h)*y,tocolor(0,0,0,200),(x/w)*1.0,"default-bold","center","center",false,false,true) Просто отлично работает! Link to comment
Kenix Posted March 27, 2012 Share Posted March 27, 2012 Уже есть функция для этого dxDrawRelativeText viewtopic.php?f=141&t=33091 Зачем изобретать велосипед? Link to comment
Arimance Posted March 27, 2012 Share Posted March 27, 2012 Зачем изобретать велосипед? Чтобы ездить Link to comment
Arisu Posted March 28, 2012 Share Posted March 28, 2012 Уже есть функция для этогоdxDrawRelativeText viewtopic.php?f=141&t=33091 Зачем изобретать велосипед? Вот у тебя - точно велосипед, на котором еще и не поймешь, как ездить. Какие-то 1280x1024, у меня экран широкий, блин. То, что Ethical написал - тоже бог знает что, без бутылки не разберешься. Ящитаю, истинно верный вариант рисования относительными координатами - w, h = guiGetScreenSize( ) dxDrawText("text", w * 0.5, h * 0.5, ...) Никаких дополнительных заморочек. Алсо, что делать, если я буду рисовать в RenderTarget? Рассчеты будут делаться относительно размеров экрана. Link to comment
MX_Master Posted March 28, 2012 Share Posted March 28, 2012 640 на 480 и нии_ёт, а когда во временную текстуру рисуешь, только начало координат меняется, если потом эту временную текстуру рисовать не масштабируя. И ваще, какая вам разница, напишите сами своё (: Link to comment
Arisu Posted March 29, 2012 Share Posted March 29, 2012 Обновил. tonumber( string.format( '0.%s', nPosX ) ) Блин што это, почему я не могу понять, что это вообще за начемоданечерезкитайские методы? Link to comment
Antibiotik Posted March 30, 2012 Share Posted March 30, 2012 (edited) можно ли изменить настройки графики через коносоль (~) ????????????????????? Edited March 30, 2012 by Guest Link to comment
Kenix Posted March 30, 2012 Share Posted March 30, 2012 Спроси на irc'e у разработчиков. Link to comment
Antibiotik Posted March 30, 2012 Share Posted March 30, 2012 но ведь сюда заходит русский разработчик, ответь пожалуйста ili Today Link to comment
lil Toady Posted March 30, 2012 Author Share Posted March 30, 2012 раньше была команда vid, не знаю сохранилась ли она еще Link to comment
Other Languages Moderators Disinterpreter Posted March 30, 2012 Other Languages Moderators Share Posted March 30, 2012 но ведь сюда заходит русский разработчик, ответь пожалуйста ili Today Ты думаешь он сидит и ждет пока ты спросишь? Тебе что трудно написать пару предложений по английски хотябы с гугл транслита? Link to comment
Arimance Posted March 31, 2012 Share Posted March 31, 2012 Привет всем! Скажите, каким образом можно вычислить позицию позади игрока на расстоянии 5 метров, например? Link to comment
Kenix Posted March 31, 2012 Share Posted March 31, 2012 https://wiki.multitheftauto.com/wiki/Get ... ceRotation не? Link to comment
MX_Master Posted April 1, 2012 Share Posted April 1, 2012 Привет всем! Скажите, каким образом можно вычислить позицию позади игрока на расстоянии 5 метров, например? local function getPositionFromElementAtOffset ( element, x,y,z ) if not x or not y or not z then return false end local matrix = getElementMatrix(element) local offX = x * matrix[1][1] + y * matrix[2][1] + z * matrix[3][1] + matrix[4][1] local offY = x * matrix[1][2] + y * matrix[2][2] + z * matrix[3][2] + matrix[4][2] local offZ = x * matrix[1][3] + y * matrix[2][3] + z * matrix[3][3] + matrix[4][3] return offX, offY, offZ end local x, y, z = getPositionFromElementAtOffset( player, 0, 5, 0 ) 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