Jump to content

[AYUDA] dxText


0xCiBeR

Recommended Posts

  • MTA Team

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

screen.jpg

EDIT: Alguien sabe la nueva funcion que lo ajusta automaticamente? Creo salio en el 1.3.3 ? Gracias

Link to comment

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

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
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
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. :roll:

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...