lLinux Posted April 15, 2014 Share Posted April 15, 2014 (edited) Buenas a todos bueno lo que neceisot hacer es ubicar una GUI, mire que la wiki y me decia algo asi como lo que veran: sx, sy = guiGetScreenSize() Rec1_x = 561/sx Rec1_y = 726/sy Rec2_x = 562/sx Rec2_y = 727/sy Text_x = 570/sx Text_y = 742/sy IMG_x = 585/sx IMG_y = 731/sy function gui1() dxDrawRectangle(sx*Rec1_x, sy*Rec1_y, 234, 43, tocolor(0, 0, 0, 50), true) --561, 726, 234, 43 dxDrawRectangle(sx*Rec2_x, sy*Rec2_y, 232, 41, tocolor(0, 0, 0, 160), true) --562, 727, 232, 41 dxDrawText(dxText, sx*Text_x, sy*Text_y, 814, 758, tocolor(255, 69, 59, 255), 1.00, "default-bold", "center", "top", false, false, true, false, false) --570, 742, 814, 758 dxDrawImage(sx*IMG_x, sy*IMG_y, 37, 34, IMGURL, 0, 0, 0, tocolor(255, 255, 255, 255), true) --585, 731, 37, 34 end addEventHandler("onClientRender", root, gui1) pero En las otras dimeciones aparece mal, alguien me puede expplicar que se debe hacer paso a paso? Edited April 15, 2014 by Guest Link to comment
Alexs Posted April 15, 2014 Share Posted April 15, 2014 Básicamente divides un numero por otro y lo multiplicas por el mismo ((1 / 5) * 5), las variables que defines en las primeras lineas (desde la tercera a la décima) no deben utilizar ni la variable 'sx' ni 'sy', en cambio utiliza el tamaño de la pantalla desde la cual obtuviste estos números. Link to comment
lLinux Posted April 15, 2014 Author Share Posted April 15, 2014 Básicamente divides un numero por otro y lo multiplicas por el mismo ((1 / 5) * 5), las variables que defines en las primeras lineas (desde la tercera a la décima) no deben utilizar ni la variable 'sx' ni 'sy', en cambio utiliza el tamaño de la pantalla desde la cual obtuviste estos números. Me puedes ayudar por un ejemplo, Ciber me dice que usa la funcion de centerwindow de la wiki pero no eso es lo que busco en si Link to comment
Alexs Posted April 15, 2014 Share Posted April 15, 2014 Suponiendo que diseñaste esto en una pantalla de resolución 1024 x 768, deberías utilizar algo así: sx, sy = guiGetScreenSize() --FIJATE EN ESTOS CAMBIOS Rec1_x = 561/1024 Rec1_y = 726/768 Rec2_x = 562/1024 Rec2_y = 727/768 Text_x = 570/1024 Text_y = 742/768 IMG_x = 585/1024 IMG_y = 731/768 function gui1() dxDrawRectangle(sx*Rec1_x, sy*Rec1_y, 234, 43, tocolor(0, 0, 0, 50), true) --561, 726, 234, 43 dxDrawRectangle(sx*Rec2_x, sy*Rec2_y, 232, 41, tocolor(0, 0, 0, 160), true) --562, 727, 232, 41 dxDrawText(dxText, sx*Text_x, sy*Text_y, 814, 758, tocolor(255, 69, 59, 255), 1.00, "default-bold", "center", "top", false, false, true, false, false) --570, 742, 814, 758 dxDrawImage(sx*IMG_x, sy*IMG_y, 37, 34, IMGURL, 0, 0, 0, tocolor(255, 255, 255, 255), true) --585, 731, 37, 34 end addEventHandler("onClientRender", root, gui1) Link to comment
lLinux Posted April 15, 2014 Author Share Posted April 15, 2014 Suponiendo que diseñaste esto en una pantalla de resolución 1024 x 768, deberías utilizar algo así: sx, sy = guiGetScreenSize() --FIJATE EN ESTOS CAMBIOS Rec1_x = 561/1024 Rec1_y = 726/768 Rec2_x = 562/1024 Rec2_y = 727/768 Text_x = 570/1024 Text_y = 742/768 IMG_x = 585/1024 IMG_y = 731/768 function gui1() dxDrawRectangle(sx*Rec1_x, sy*Rec1_y, 234, 43, tocolor(0, 0, 0, 50), true) --561, 726, 234, 43 dxDrawRectangle(sx*Rec2_x, sy*Rec2_y, 232, 41, tocolor(0, 0, 0, 160), true) --562, 727, 232, 41 dxDrawText(dxText, sx*Text_x, sy*Text_y, 814, 758, tocolor(255, 69, 59, 255), 1.00, "default-bold", "center", "top", false, false, true, false, false) --570, 742, 814, 758 dxDrawImage(sx*IMG_x, sy*IMG_y, 37, 34, IMGURL, 0, 0, 0, tocolor(255, 255, 255, 255), true) --585, 731, 37, 34 end addEventHandler("onClientRender", root, gui1) Ya lo acomode si me dio gracias, ahora la pregunta, aparecera en el mismo lugar, en los otros tamaños de pantalla? Link to comment
Alexs Posted April 15, 2014 Share Posted April 15, 2014 De cierto modo, si, el problema es que las distintas resoluciones de pantalla utilizan también distintas escalas, lo que podría generar ciertas incomodidades visuales. Link to comment
lLinux Posted April 15, 2014 Author Share Posted April 15, 2014 De cierto modo, si, el problema es que las distintas resoluciones de pantalla utilizan también distintas escalas, lo que podría generar ciertas incomodidades visuales. Eso es lo que quiero evitar, que en algunas pantallas se acomode bien y otras no. algo que pueda hacer? Link to comment
Alexs Posted April 15, 2014 Share Posted April 15, 2014 De cierto modo, si, el problema es que las distintas resoluciones de pantalla utilizan también distintas escalas, lo que podría generar ciertas incomodidades visuales. Eso es lo que quiero evitar, que en algunas pantallas se acomode bien y otras no. algo que pueda hacer? En los casos que necesito acomodar un diseño demasiado detallado a distintas resoluciones, opto por lo sencillo y consigo las coordenadas y tamaños "manualmente" desde cada resolución. Link to comment
lLinux Posted April 15, 2014 Author Share Posted April 15, 2014 De cierto modo, si, el problema es que las distintas resoluciones de pantalla utilizan también distintas escalas, lo que podría generar ciertas incomodidades visuales. Eso es lo que quiero evitar, que en algunas pantallas se acomode bien y otras no. algo que pueda hacer? En los casos que necesito acomodar un diseño demasiado detallado a distintas resoluciones, opto por lo sencillo y consigo las coordenadas y tamaños "manualmente" desde cada resolución. Como? Link to comment
Alexs Posted April 15, 2014 Share Posted April 15, 2014 Utilizo el 'guieditor', voy alterando la resolución de mi pantalla y hago el diseño en cada una de ellas. Link to comment
lLinux Posted April 15, 2014 Author Share Posted April 15, 2014 Se ubica bien en mi pantalla, pero en otras de mayor dimecion se ve mas abajo o mas arriba, no se ubica como, es: local sx, sy = guiGetScreenSize() --Obtiene el tamaño de la pantalla ------------------------------------- -- 1366, 768 --x - y parax1212 = 1212/1366 parax1210 = 1210/1366 parax1211 = 1211/1366 paray19 = 19/768 paray17 = 17/768 paray18 = 18/768 -- w - h paraw1299 = 1299/1366 paraw1297 = 1297/1366 paraw1298 = 1298/1366 -- parah56 = 56/768 parah54 = 54/768 parah55 = 55/768 ------------------------------------- addEventHandler("onClientRender", root, function() local time = getRealTime() --Obtiene el tiempo real. local hours = time.hour --Obtiene las horas del tiempo real. local minutes = time.minute --Obtiene los minutos del timpo real. t1 = dxDrawText(""..hours..":"..minutes.."", sx*parax1212, sy*paray19, 1299, 56, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t2 = dxDrawText(""..hours..":"..minutes.."", sx*parax1212, sy*paray17, 1299, 54, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t3 = dxDrawText(""..hours..":"..minutes.."", sx*parax1210, sy*paray19, 1297, 56, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t4 = dxDrawText(""..hours..":"..minutes.."", sx*parax1210, sy*paray17, 1297, 54, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t5 = dxDrawText(""..hours..":"..minutes.."", sx*parax1211, sy*paray18, 1298, 55, tocolor(255, 255, 255, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) end ) Link to comment
Julian09123 Posted April 16, 2014 Share Posted April 16, 2014 Ami haciendolo asi me sale bien en todas las resoluciones no se cual es tu problema. Intenta poniendote otra resoulucion y hacer la multi reso con esa resolucion y despues prueba con la Normal que tienes. por cierto que resolucion tienes? Link to comment
Tomas Posted April 16, 2014 Share Posted April 16, 2014 O simplemente resolucion = guiGetScreenSize() if resolucion == 720*1280 then -- Script de gui adecuada a esa resolucion Y así lo mismo cambiado los numeritos de la resolucion Link to comment
Alexs Posted April 16, 2014 Share Posted April 16, 2014 O simplemente resolucion = guiGetScreenSize() if resolucion == 720*1280 then -- Script de gui adecuada a esa resolucion Y así lo mismo cambiado los numeritos de la resolucion Eso sencillamente no funcionaria, es imposible que la variable 'resolucion' adquiera un valor igual a 921600. Link to comment
alex17 Posted April 16, 2014 Share Posted April 16, 2014 yo lo hago de esta manera y me queda igual con todas las resoluciones puedes tomarlo como ejemplo y darte un idea D: sWidth, sHeight = guiGetScreenSize() local x = sWidth/1000 local y = sHeight/1000 function drawPanel() dxDrawRectangle(x*345, y*230, x*317.5, y*640, tocolor(4, 4, 4, 60), false) dxDrawEmptyRec(x*345, y*230, x*317.5, y*640, tocolor(0, 0, 0, 255), 1) dxDrawRectangle(x*345, y*230, x*317.5, y*41.66, tocolor(2, 1, 1, 252), false) dxDrawText("Help Panel", x*353, y*235, 476, 163, tocolor(255, 255, 255, 255), 0.83*y, "bankgothic", "left", "top", false, false, true, false, false) end Link to comment
lLinux Posted April 19, 2014 Author Share Posted April 19, 2014 yo lo hago de esta manera y me queda igual con todas las resoluciones puedes tomarlo como ejemplo y darte un idea D: sWidth, sHeight = guiGetScreenSize() local x = sWidth/1000 local y = sHeight/1000 function drawPanel() dxDrawRectangle(x*345, y*230, x*317.5, y*640, tocolor(4, 4, 4, 60), false) dxDrawEmptyRec(x*345, y*230, x*317.5, y*640, tocolor(0, 0, 0, 255), 1) dxDrawRectangle(x*345, y*230, x*317.5, y*41.66, tocolor(2, 1, 1, 252), false) dxDrawText("Help Panel", x*353, y*235, 476, 163, tocolor(255, 255, 255, 255), 0.83*y, "bankgothic", "left", "top", false, false, true, false, false) end 1000? porque 1000? Link to comment
lLinux Posted April 19, 2014 Author Share Posted April 19, 2014 Ami haciendolo asi me sale bien en todas las resoluciones no se cual es tu problema.Intenta poniendote otra resoulucion y hacer la multi reso con esa resolucion y despues prueba con la Normal que tienes. por cierto que resolucion tienes? Mi resolucion es de : 1366 x 768 Link to comment
alex17 Posted April 19, 2014 Share Posted April 19, 2014 mmm lo pongo entre 1000 por que asi divide tu resolución en 1000 partes iguales y luego para ubicar la gui solo multiplicas por ejemplo si multiplicas por 500 seria la mitad de la pantalla en todas resoluciones , si multiplicas 1000 seria el final de tu pantalla y asi bla bla bla , no se si me abras entendido algo soy malo explicando Link to comment
Julian09123 Posted April 19, 2014 Share Posted April 19, 2014 Linux pasame tu Client asi te lo hago pero sin los x y y hechos yo te los hago bien. Por mp. Link to comment
Tomas Posted April 19, 2014 Share Posted April 19, 2014 Dudo que lo haga, porque no explicas como hacerlo para todos? ... Link to comment
lLinux Posted April 19, 2014 Author Share Posted April 19, 2014 Linux pasame tu Client asi te lo hago pero sin los x y y hechos yo te los hago bien.Por mp. es este: local sx, sy = guiGetScreenSize() --Obtiene el tamaño de la pantalla ------------------------------------- -- 1366, 768 --x - y parax1212 = 1212/1366 parax1210 = 1210/1366 parax1211 = 1211/1366 paray19 = 19/768 paray17 = 17/768 paray18 = 18/768 -- w - h paraw1299 = 1299/1366 paraw1297 = 1297/1366 paraw1298 = 1298/1366 -- parah56 = 56/768 parah54 = 54/768 parah55 = 55/768 ------------------------------------- addEventHandler("onClientRender", root, function() local time = getRealTime() --Obtiene el tiempo real. local hours = time.hour --Obtiene las horas del tiempo real. local minutes = time.minute --Obtiene los minutos del timpo real. t1 = dxDrawText(""..hours..":"..minutes.."", sx*parax1212, sy*paray19, 1299, 56, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t2 = dxDrawText(""..hours..":"..minutes.."", sx*parax1212, sy*paray17, 1299, 54, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t3 = dxDrawText(""..hours..":"..minutes.."", sx*parax1210, sy*paray19, 1297, 56, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t4 = dxDrawText(""..hours..":"..minutes.."", sx*parax1210, sy*paray17, 1297, 54, tocolor(0, 0, 0, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) t5 = dxDrawText(""..hours..":"..minutes.."", sx*parax1211, sy*paray18, 1298, 55, tocolor(255, 255, 255, 255), 1.50, "pricedown", "left", "top", false, false, true, false, false) end ) Link to comment
Julian09123 Posted April 20, 2014 Share Posted April 20, 2014 Te hago una pregunta no? para que usas tablas? si sencillamente podrias hacer en la misma linea? Otra pregunta de que tamaño es tu Pantalla? osea cuantas pulgadas?. Si no funciona esto.ps nose cual seria el problema Link to comment
lLinux Posted April 20, 2014 Author Share Posted April 20, 2014 mmm lo pongo entre 1000 por que asi divide tu resolución en 1000 partes iguales y luego para ubicar la gui solo multiplicas por ejemplo si multiplicas por 500 seria la mitad de la pantalla en todas resoluciones , si multiplicas 1000 seria el final de tu pantalla y asi bla bla bla , no se si me abras entendido algo soy malo explicando Si te entendi, pero si da en todas las pantallas? Link to comment
Tomas Posted April 20, 2014 Share Posted April 20, 2014 Te hago una pregunta no? para que usas tablas? si sencillamente podrias hacer en la misma linea?Otra pregunta de que tamaño es tu Pantalla? osea cuantas pulgadas?. Si no funciona esto.ps nose cual seria el problema Dónde usó tablas? Y el script que el hizo se puede hacer sencillamente en una línea. Link to comment
lLinux Posted April 20, 2014 Author Share Posted April 20, 2014 Te hago una pregunta no? para que usas tablas? si sencillamente podrias hacer en la misma linea?Otra pregunta de que tamaño es tu Pantalla? osea cuantas pulgadas?. Si no funciona esto.ps nose cual seria el problema Dónde usó tablas? Y el script que el hizo se puede hacer sencillamente en una línea. Tampoco le entendi, pero de seguro penso que las variables son tablas. Link to comment
Recommended Posts