Relative Anpassung an verschiedenen Auflösungen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallö'chen liebe Brotfischer,


    Ich habe ein Problem und zwar möchte ich gerne ein dxDrawText auf einem dxDrawImage erstellen. Das Problem ist ich habe es mit mehrere Auflösungen versucht und das dxDrawText - Element ist immer an einem anderen Ort (siehe Bilder) obwohl ich eine relative Anpassung vorgenommen habe..


    1920x1084





    1600x1200




    Code
    local sWidth,sHeight = guiGetScreenSize()
    local px = sWidth/1920
    local py = sHeight/1080
    --Nur als Test statt dxDrawText einfach ein dxDrawRectangle
    dxDrawRectangle(1690*px, 123*py, 150*px, 40*py,tocolor(200,200,200,255*0.86))
  • Das ist in diesem Fall relativ simpel zu lösen. Deine Denkweise ist genau verkehrt herum, deshalb platziert sich das dxRectangle jedes mal wo anders. Die Koordinaten (x,y) gehen vom oberen linken Bildschirmrand aus (0|0). Wenn du also dieses Rectangle an der rechten Seite des Bildschirms haben willst gehst du schonmal direkt von (x,0) -> rechte Seite des Bildschirms aus. Danach einfach den gewünschten Abstand zum Rand subtrahieren und das Problem sollte erledigt sein


    Code
    local x, y = guiGetScreenSize() -returnt Breite und Höhe des Bildschirms
    --Wir gehen nun von den Koordinaten x = Breite/Ende, y = 0 --da es am oberen Bildschirmrand sein soll
    
    
    addEventHandler("onClientRender", root, function()
         dxDrawRectangle(x-150, 0+50, 70, 20, tocolor(0,0,0,255), true) --Der Abstand zum Bildschirm beträgt 150-Breite = 80 ;)
    end