Ahoj,
snažím se o to přizpůsobit všechny textury ve hře aktuálnímu rozlišení displeje. Aktuální rozlišení displaje získat není problém, na to už je zabudovaná funkce, která to už zjistí. Problém, ale mám že hru mám navrženou fixně na Full HD (1920 x 1080) a potřeboval bych všechny komponenty přepočítat na toto aktuální rozlišení.
Například 2D obdelníkoví vektor herní desky je (420, 0, 1080, 1080), kde první dvě číslice udávají pozici od horního levého roku a poslední dvě číslice udávají velikost (sizeX, sizeY). Převést první dvě hodnoty například na rozlišení 2K (2560x1440) by mělo jít lehce pomocí trojčlenky:
X:
1920.............................................420
2560.............................................x
-----------------------------------------------------
(1920/2560) = (x/420) => x= (2560/1920)*420
x= 560
Podobně pro Y:
1440...........................................y
1080...........................................0
----------------------------------------------------
y=(1080/1440)*0
y=0
-------------------------------------------------------
S čím mám ovšem problém je převést poslední dvě čísla. Potřeboval bych najít mezi nimi a rozlišením nějakou závislost, pomocí které by se dali snadno přepočítat.
Nevěděl by si prosím s tímto někdo rady?
Správný výsledek pro tu herní desku z tohoto Full HD(420,0,1080,1080) by měl vyjít na 2K (560,0,1440,1440)
Zkoušel jsem to přes poměr k_x=x_původní/size_x_původní
k_x = 1920/1080 =>1,77
a pak pomocí trojčlenky:
1920......................1,77
2560,,,,,,,,,,,,,,,,,,,,,,,,k_x_2K
---------------------------------
k_x_2K = 2,36
Size_x_2K = 2560/2,36 => 1084,74 což jak je vidět nevychází :(( (mělo by vyjít 1440)
Snad jestli počítám správně, tak pro tyto rozlišení by ta deska měla mít tyto hodnoty:
HD (1280x720) => (320,0,720,720)
Full HD (1920, 1080) => (420,0,1080,1080)
2K (2560x1440) => (560,0,1440,1440)