MTA Team 0xCiBeR Posted July 16, 2013 MTA Team Share Posted July 16, 2013 Hola, mi problema es que si uso una resolucion de 800*600 todo me anda bien y cuadra..Ahora cuando uso una resolucion mas grande, Mis Ranks, quedan debajo del minimapa en ves de arriba.. Aca la imagen EDIT: Alguien sabe la nueva funcion que lo ajusta automaticamente? Creo salio en el 1.3.3 ? Gracias Link to comment
Arsilex Posted July 16, 2013 Share Posted July 16, 2013 https://wiki.multitheftauto.com/wiki/GuiGetScreenSize Link to comment
MTA Team 0xCiBeR Posted July 16, 2013 Author MTA Team Share Posted July 16, 2013 uso dx? sirve igual? Link to comment
Alexs Posted July 16, 2013 Share Posted July 16, 2013 Usa: guiGetScreenSize Eso te devuelve 2 valores, el ancho y el alto de la resolución usada por el cliente, con eso puedes hacer el calculo de la posición y el tamaño de los 'dx' que utilizas y así los haces relativos a todas las resoluciones. No hay forma de hacerlo automático, lo único que se añadió en la 1.3.3 fue la opción de ajustar el HUD a las pantallas 'widescreen'. Link to comment
~ProtoN! Posted July 19, 2013 Share Posted July 19, 2013 Para que los elementos gui y/o dx se vean bien en cualquier resolución tenés que dividir la posicion y el tamaño del dx o gui por la resolucion actual(la resolucion en la que creaste el gui o dx) y multiplicarla por la resolucion en la que se va a visualisar. Ejemplo textual: En este caso como es dxDrawText no importa el tamaño, ya que eso depende del font-size que le pongan. Voy a poner en la posicion horizontal un valor de 15 y en la vertical un valor de 12.50, con esto ya tengo la posicion. Ahora estoy creando este elemento en una resolucion de 800x600, que sería la resolucion actual y por ultimo la resolucion en la que se va a ejecutar que no la podemos saber porque cada quien usa una resolucion diferente. hasta ahora tendriamos algo así: 15/800*resolucion en la que se va a ejecutar, 12.50/600*resolucion en la que se va a ejecutar. ¿Como saber en que resolución la van a ejecutar? La respuesta es con la funcion guiGetScreenSize, esta nos devuelve la resolucion en 2 valores int. Aca un ejemplo en lua: ancho, alto = guiGetScreenSize --Le asignamos las vasriables y ahora podemos saber cual es la resolucion a ejecutar. --Acá el dx con dichos calculos nos va a dar el posicionamiento y tamaño correcto en cualquier resolución dxDrawText("EJEMPLO", 15/800*ancho, 12.50/600*alto, 454/800*ancho, 41/600*alto, tocolor(255, 255, 255, 255), fuente, "default-bold", "left", "top", false, false, true, false, false) Espero haberte ayudado Link to comment
Alexs Posted July 19, 2013 Share Posted July 19, 2013 Para que los elementos gui y/o dx se vean bien en cualquier resolución tenés que dividir la posicion y el tamaño del dx o gui por la resolucion actual(la resolucion en la que creaste el gui o dx) y multiplicarla por la resolucion en la que se va a visualisar.Ejemplo textual: En este caso como es dxDrawText no importa el tamaño, ya que eso depende del font-size que le pongan. Voy a poner en la posicion horizontal un valor de 15 y en la vertical un valor de 12.50, con esto ya tengo la posicion. Ahora estoy creando este elemento en una resolucion de 800x600, que sería la resolucion actual y por ultimo la resolucion en la que se va a ejecutar que no la podemos saber porque cada quien usa una resolucion diferente. hasta ahora tendriamos algo así: 15/800*resolucion en la que se va a ejecutar, 12.50/600*resolucion en la que se va a ejecutar. ¿Como saber en que resolución la van a ejecutar? La respuesta es con la funcion guiGetScreenSize, esta nos devuelve la resolucion en 2 valores int. Aca un ejemplo en lua: ancho, alto = guiGetScreenSize --Le asignamos las vasriables y ahora podemos saber cual es la resolucion a ejecutar. --Acá el dx con dichos calculos nos va a dar el posicionamiento y tamaño correcto en cualquier resolución dxDrawText("EJEMPLO", 15/800*ancho, 12.50/600*alto, 454/800*ancho, 41/600*alto, tocolor(255, 255, 255, 255), fuente, "default-bold", "left", "top", false, false, true, false, false) Espero haberte ayudado Si vas a hacer un calculo entre dos números que no cambiaran, seria mas rápido escribir directamente el resultado: dxDrawText("EJEMPLO", ancho*.01875, alto*.02083333333, ancho*.5675, alto*.06833333333, tocolor(255, 255, 255, 255), fuente, "default-bold", "left", "top", false, false, true, false, false) Link to comment
~ProtoN! Posted July 20, 2013 Share Posted July 20, 2013 La verdad que te llevaria mas tiempo, es mas sensillo que el script te haga el calculo antes que perder mas tiempo sacando las cuentas. Link to comment
Alexs Posted July 20, 2013 Share Posted July 20, 2013 La verdad que te llevaria mas tiempo, es mas sensillo que el script te haga el calculo antes que perder mas tiempo sacando las cuentas. No me refería a eso, es mas lento y mayor consumo estar sacando un calculo en cada frame, si es posible añadir tu mismo los valores es mayor la eficiencia. Link to comment
Recommended Posts