Jump to content

Problemas de resolución DX


vallejo

Recommended Posts

En realidad la 1366x768 no es ni de cerca la máxima por lo ejemeplo uso 1080x1920. La máxima actualmente es 4k ( En monitores ) ya que se que existe una tele de 8k4k que es de 7680 x 4320 pero eso es aparte

Volviendo al tema yo te sugiero trabajar con pixeles directamente es decir no trabajar en una resolución concreta si no que ajustar tu código directamente a todas las resoluciones.

Link to comment

Lol por eso, si te fijas puse el resto en comentario para probar y efectivamente cuando pongo 1 DxDrawText no me muestra los rectángulos y ninguna otra figura solo cuando añado eso y este problema surgió cuando añadí las resoluciones:

local sourceX, sourceY = 1366, 768 
local sx, sy = guiGetScreenSize() 
  
addEventHandler("onClientResourceStart", resourceRoot, 
    function() 
        Actualizaciones = guiCreateMemo((370/sourceX)*sx, (372/sourceY)*sy, (628/sourceX)*sx, (200/sourceY)*sy, "", false) 
        guiMemoSetReadOnly(Actualizaciones, true) 
  
  
        usuario = guiCreateEdit((462/sourceX)*sx, (258/sourceY)*sy, (180/sourceX)*sx, (21/sourceY)*sy, "", false) 
  
  
        contrasena = guiCreateEdit((821/sourceX)*sx, (258/sourceY)*sy, (180/sourceX)*sx, (21/sourceY)*sy, "", false)     
    end 
) 
  
addEventHandler("onClientRender", root, 
    function() 
        dxDrawLine(((360 - 1)/sourceX)*sx, ((195 - 1)/sourceY)*sy, ((360 - 1)/sourceX)*sx, (582/sourceY)*sy, tocolor(0, 0, 0, 255), 1, false) 
        dxDrawLine((1008/sourceX)*sx, ((195 - 1)/sourceY)*sy, ((360 - 1)/sourceX)*sx, ((195 - 1)/sourceY)*sy, tocolor(0, 0, 0, 255), 1, false) 
        dxDrawLine(((360 - 1)/sourceX)*sx, (582/sourceY)*sy, (1008/sourceX)*sx, (582/sourceY)*sy, tocolor(0, 0, 0, 255), 1, false) 
        dxDrawLine((1008/sourceX)*sx, (582/sourceY)*sy, (1008/sourceX)*sx, ((195 - 1)/sourceY)*sy, tocolor(0, 0, 0, 255), 1, false) 
        dxDrawRectangle((360/sourceX)*sx, (195/sourceY)*sy, (648/sourceX)*sx, (387/sourceY)*sy, tocolor(50, 220, 40, 100), false) 
        dxDrawLine(((360 - 1)/sourceX)*sx, ((175 - 1)/sourceY)*sy, ((360 - 1)/sourceX)*sx, (239/sourceY)*sy, tocolor(254, 254, 254, 255), 1, false) 
        dxDrawLine((1008/sourceX)*sx, ((175 - 1)/sourceY)*sy, ((360 - 1)/sourceX)*sx, ((175 - 1)/sourceY)*sy, tocolor(254, 254, 254, 255), 1, false) 
        dxDrawLine(((360 - 1)/sourceX)*sx, (239/sourceY)*sy, (1008/sourceX)*sx, (239/sourceY)*sy, tocolor(254, 254, 254, 255), 1, false) 
        dxDrawLine((1008/sourceX)*sx, (239/sourceY)*sy, (1008/sourceX)*sx, ((175 - 1)/sourceY)*sy, tocolor(254, 254, 254, 255), 1, false) 
        dxDrawRectangle((360/sourceX)*sx, (175/sourceY)*sy, (648/sourceX)*sx, (64/sourceY)*sy, tocolor(0, 0, 0, 255), false) --- Cabecera 
        dxDrawRectangle((446/sourceX)*sx, (297/sourceY)*sy, (229/sourceX)*sx, (26/sourceY)*sy, tocolor(235, 251, 235, 255), false) --btn1 
        dxDrawRectangle((685/sourceX)*sx, (297/sourceY)*sy, (229/sourceX)*sx, (26/sourceY)*sy, tocolor(235, 251, 235, 255), false) --btn2 
          
        dxDrawRectangle((492/sourceX)*sx, (333/sourceY)*sy, (373/sourceX)*sx, (29/sourceY)*sy, tocolor(235, 251, 235, 255), false) -- btn3 
        --dxDrawRectangle((242/sourceX)*sx, (192/sourceY)*sy, (5/sourceX)*sx, (0/sourceY)*sy, tocolor(255, 255, 255, 255), false) 
        --dxDrawRectangle((530/sourceX)*sx, (269/sourceY)*sy, (800/sourceX)*sx, (0/sourceY)*sy, tocolor(255, 255, 255, 255), false) 
        --dxDrawRectangle((530/sourceX)*sx, (269/sourceY)*sy, (800/sourceX)*sx, (0/sourceY)*sy, tocolor(255, 255, 255, 255), false) 
         
        --[[dxDrawText("Usuario:", 366 + 1, 253 + 1, 488 + 1, 281 + 1, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Usuario:", (366, 253, 488, 281, tocolor(255, 255, 255, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Iniciar sesión", ((497 + 1)/sourceX)*sx, ((296 + 1)/sourceY)*sy, ((645 + 1)/sourceX)*sx, ((323 + 1)/sourceY)*sy, tocolor(50, 220, 40, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Iniciar sesión", (497/sourceX)*sx, (296/sourceY)*sy, (645/sourceX)*sx, (23/sourceY)*sy, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
         
        dxDrawText("Recuperar contraseña", ((548 + 1)/sourceX)*sx, ((333 + 1)/sourceY)*sy, ((801 + 1)/sourceX)*sx, ((362 + 1)/sourceY)*sy, tocolor(50, 220, 40, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Recuperar contraseña", (548/sourceX)*sx, (333/sourceY)*sy, (801/sourceX)*sx, (362/sourceY)*sy, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawLine((360/sourceX)*sx, (292/sourceY)*sy, (1007/sourceX)*sx, (291/sourceY)*sy, tocolor(0, 0, 0, 255), 2, false) 
         
        dxDrawText("COMUNIDAD LATINA", ((440 - 1)/sourceX)*sx, ((181 - 1)/sourceY)*sy, ((1087 - 1)/sourceX)*sx, ((253 - 1)/sourceY)*sy, tocolor(255, 255, 255, 255), 2.50, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("COMUNIDAD LATINA", ((440 + 1)/sourceX)*sx, ((181 - 1)/sourceY)*sy, ((1087 + 1)/sourceX)*sx, ((253 - 1)/sourceY)*sy, tocolor(255, 255, 255, 255), 2.50, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("COMUNIDAD LATINA", ((440 - 1)/sourceX)*sx, ((181 + 1)/sourceY)*sy, ((1087 - 1)/sourceX)*sx, ((253 + 1)/sourceY)*sy, tocolor(255, 255, 255, 255), 2.50, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("COMUNIDAD LATINA", ((440 + 1)/sourceX)*sx, ((181 + 1)/sourceY)*sy, ((1087 + 1)/sourceX)*sx, ((253 + 1)/sourceY)*sy, tocolor(255, 255, 255, 255), 2.50, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("COMUNIDAD LATINA", (440/sourceX)*sx, (181/sourceY)*sy, (1087/sourceX)*sx, (253/sourceY)*sy, tocolor(0, 0, 0, 255), 2.50, "pricedown", "left", "top", false, false, false, false, false) 
         
        dxDrawText("Contraseña:", ((677 + 1)/sourceX)*sx, ((254 + 1)/sourceY)*sy, ((815 + 1)/sourceX)*sx, ((279 + 1)/sourceY)*sy, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Contraseña:", (677/sourceX)*sx, (254/sourceY)*sy, (815/sourceX)*sx, (279/sourceY)*sy, tocolor(255, 255, 255, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
         
        dxDrawText("Registrar", ((746 + 1)/sourceX)*sx, ((296 + 1)/sourceY)*sy, ((894 + 1)/sourceX)*sx, ((323 + 1)/sourceY)*sy, tocolor(50, 220, 40, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Registrar", (746/sourceX)*sx, (296/sourceY)*sy, (894/sourceX)*sx, (323/sourceY)*sy, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
       ]]-- 
    end 
) 

Link to comment

Eso es porque tendrás algunos argumentos mal. Te recomiendo en vez de hacer por ejemplo 503 + 1, directamente poner 504, es lo mismo... Y no se ponen tantos paréntesis, ess simplemente esto:

(497/sourceX)*sx, (296/sourceY)*sy, (645/sourceX)*sx, (23/sourceY)*sy 

Porque vi que tenías cosas como...

((323 + 1)/sourceY)*sy 

Por eso no te lee el código, ese paréntesis no acaba en ningún lado, no engloba nada y tampoco es que pinte algo ahí. Los paréntesis se usan aquí para sacar un valor (la posición, dividida entre la resolución base (x/sourceX)*sx, multiplicada por el tamaño de la pantalla del jugador).

Link to comment

si tengo esto, como ajusto acorde a la formula que me dio el texto?:

dxDrawText("Iniciar sesión", (498/sourceX)*sx, (297/sourceY)*sy, (646/sourceX)*sx, (325/sourceY)*sy, tocolor(50, 220, 40, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Iniciar sesión", (497/sourceX)*sx, (296/sourceY)*sy, (645/sourceX)*sx, (23/sourceY)*sy, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 

Hice esto:

dxDrawText("Iniciar sesión", (498/sourceX)*sx, (297/sourceY)*sy, (646/sourceX)*sx, (sourceY/sy)*325, tocolor(50, 220, 40, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 
        dxDrawText("Iniciar sesión", (497/sourceX)*sx, 296/sourceY)*sy, (645/sourceX)*sx, (sourceY/sy)*23, tocolor(0, 0, 0, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) 

Pero mi duda es, el rectángulo si se ajusta normal a las resoluciones, pero el texto queda movido en X, no se ajusta en X solo el ancho.

esta es la resolución mas baja: 210m811.png

Link to comment

Por eso dije, lo debes ajustar manualmente. Cuando tú haces lo que te dije, no se va a quedar igual que como lo hiciste antes, ya que realizas distintas calculaciones, que, en casos, puede distorsionar lo que hiciste. Por lo cual, tendrás que ajustarlo manualmente.

Link to comment

ya solucione el tamaño de las letras con esto:

local sx, sy = guiGetScreenSize() 
local x, y = 1366, 768 
local fontsize  = sx/1366 
  
dxDrawText(": "..estrellas, (sx/x)*1163, (sy/y)*29, (sx/x)*1134, (sy/y)*67, tocolor(cr, cg, cb, 255), 1.50*fontsize, "pricedown", "left", "top", false, false, false, false, false) 

Link to comment

Realmente ajustar el tamaño de la fuente multiplicándolo por la X está mal, lo correcto es hacerlo por la y.

Ejemplo:

local sx, sy = guiGetScreenSize() 
local myX, myY = 1366, 768 
dxDrawText("GG WP", (x/myX)*sx, (y/myY)*sy, (width/myX)*sx, (height/myY)*sy, tocolor(), (size/myY)*sy) 

Link to comment
Realmente ajustar el tamaño de la fuente multiplicándolo por la X está mal, lo correcto es hacerlo por la y.

Ejemplo:

local sx, sy = guiGetScreenSize() 
local myX, myY = 1366, 768 
dxDrawText("GG WP", (x/myX)*sx, (y/myY)*sy, (width/myX)*sx, (height/myY)*sy, tocolor(), (size/myY)*sy) 

Está mal también

(sy/myY)*size) 

Link to comment
Realmente ajustar el tamaño de la fuente multiplicándolo por la X está mal, lo correcto es hacerlo por la y.

Ejemplo:

local sx, sy = guiGetScreenSize() 
local myX, myY = 1366, 768 
dxDrawText("GG WP", (x/myX)*sx, (y/myY)*sy, (width/myX)*sx, (height/myY)*sy, tocolor(), (size/myY)*sy) 

Está mal también

(sy/myY)*size) 

Es la misma operación.

Link to comment
  • Recently Browsing   0 members

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