Como dice Josezpin en Nevato viene un codigo para esto:
local blip = fe.layout.height;
local flx = fe.layout.width;
local fly = fe.layout.height;
local flw = fe.layout.width;
local flh = fe.layout.height;
//fe.layout.width = 1920;
//fe.layout.height = 1080;
//coordinates table for different screen aspects -------------------------- START
local settings = {
"default": {
aspectDepend = {
snap_skewX = 42.0,
snap_skewY = -8.0,
snap_pinchX = 0,
snap_pinchY = 29.0,
snap_rotation = 0.9,
marquee_skewX = 17,
marquee_skewY = 0,
marquee_pinchX = -2,
marquee_pinchY = 7,
marquee_rotation = 6.2,
wheelNumElements = 10 }
},
"16x10": {
aspectDepend = {
res_x = 1920,
res_y = 1200,
maskFactor = 1.9,
snap_skewX = 62.5,
snap_skewY = -12.9,
snap_pinchX = 0,
snap_pinchY = 40.0,
snap_rotation = 1.0,
wheelNumElements = 10 }
},
"16x9": {
aspectDepend = {
res_x = 2133,
res_y = 1200,
maskFactor = 1.9,
snap_skewX = 62.5,
snap_skewY = -12.9,
snap_pinchX = 0,
snap_pinchY = 40.0,
snap_rotation = 1.0,
wheelNumElements = 8 }
},
"4x3": {
aspectDepend = {
res_x = 1600,
res_y = 1200,
maskFactor = 1.6,
snap_skewX = 62.5,
snap_skewY = -12.9,
snap_pinchX = 0,
snap_pinchY = 40.0,
snap_rotation = 1.0,
wheelNumElements = 10 }
}
"5x4": {
aspectDepend = {
res_x = 1500,
res_y = 1200,
maskFactor = 1.6,
snap_skewX = 62.5,
snap_skewY = -12.9,
snap_pinchX = 0,
snap_pinchY = 40.0,
snap_rotation = 1.0,
wheelNumElements = 10 }
}
}
local aspect = fe.layout.width / fe.layout.height.tofloat();
print (aspect);
local aspect_name = "";
switch( aspect.tostring() )
{
case "1.77865": //for 1366x768 screen
case "1.77778": //for any other 16x9 resolution
aspect_name = "16x9";
break;
case "1.6":
aspect_name = "16x10";
break;
case "1.33333":
aspect_name = "4x3";
break;
case "1.25":
aspect_name = "5x4";
break;
case "0.75":
aspect_name = "3x4";
break;
}
function Setting( id, name )
{
if ( aspect_name in settings && id in settings[aspect_name] && name in settings[aspect_name][id] )
{
::print("\tusing settings[" + aspect_name + "][" + id + "][" + name + "] : " + settings[aspect_name][id][name] + "\n" );
return settings[aspect_name][id][name];
} else if ( aspect_name in settings == false )
{
::print("\tsettings[" + aspect_name + "] does not exist\n");
} else if ( name in settings[aspect_name][id] == false )
{
::print("\tsettings[" + aspect_name + "][" + id + "][" + name + "] does not exist\n");
}
::print("\t\tusing default value: " + settings["default"][id][name] + "\n" );
return settings["default"][id][name];
}
fe.layout.width = Setting("aspectDepend", "res_x");
fe.layout.height = Setting("aspectDepend", "res_y");
local blip = fe.layout.height;
local flx = fe.layout.width;
local fly = fe.layout.height;
local flw = fe.layout.width;
local flh = fe.layout.height;
local mask_factor = Setting("aspectDepend", "maskFactor");
//coordinates table for different screen aspects -------------------------- END
Como de primeras mete un poco de respeto yo empezaria haciendo uno "responsive" para ir probando.
Si añades este codigo:
local flw = fe.layout.width;
local flh = fe.layout.height;
Entonces imagina que quieres "colocar" un fondo:
local bg = fe.add_image("images/bg.png", 0, 0, flw, flh);
Al usar "flw" y "flh" siempre te va colocar el "bg.png" usando el ancho y alto total.
Si colocas:
local test = fe.add_image("images/test.png", flw*0.1, flh*0.1, flw*0.5, flh*0.5);
Siempre usara 0.1 por el ancho (flw*0.1) y 0.1 por el alto (flh*0.1) para establecer la posicion.
Y la mitad del ancho (flw*0.5) y la mitad del alto (flw*0.5) para establecer el tamaño.
Para ir porbando puedes hacer algo asi a ver como te queda.
Pero claro si haces algo para 4k ultrawide no es facil que quede bien a 640x280 y 4:3
Yo empezaria por un layout "panoramico" y luego le quitas elementos y lo adapatas a 4:3.