Añadir parámetros a un layout en Attract ModeAttract Mode permite modificar algunos aspectos de un layout mediante el menú del frontend siempre y cuando los hayamos añadido. Para acceder a dicha opción haremos lo siguiente:
1.- Pulsamos la tecla
TAB para entrar en las opciones (como en MAME)
2.- Una vez dentro de la configuración seleccionamos la opción
Displays3.- Seleccionamos el Display que queremos.
4.- Una vez dentro del Display nos iremos a la opción
Display OptionsSi nuestro layout tiene parámetros a modificar aparecerán ahí y seleccionando cada uno, podríamos bien meter un valor para cada parámetro o bien seleccionar uno de los que tengamos.
Como ejemplo, pondré el layout que me pasó el usuario Ruben. En dicho layout el compañero me pedía que el snap/video del juego seleccionado apareciera por la izquierda hasta llegar a la posición definida por él.(Podéis verlo
aquí)
El tema es que ese movimiento se hace con una determinada velocidad; dicha velocidad a mí me puede parecer muy rápida y a otra persona lenta así que como ejemplo añadiré un parámetro de forma que desde la opción comentada anteriormente podamos modificar dicho valor desde la opción del frontend.
Para ello añado al layout (fichero layout.nut) la siguiente línea
class UserConfig {
</ label="SpinWheel", help="The artwork to spin", options="marquee,flyer,wheel" /> orbit_art="wheel";
</ label="Transition Time", help="Time in milliseconds for wheel spin." /> transition_ms="25";
[color=red]</ label="Transition snap Time", help="Time in milliseconds for snap." , options = "2000,2500,3000,3500,4000,4500,5000,5500,6000,6500,7000" /> snaptransition_ms="2500";[/color]
}
La he puesto en rojo porque las dos anteriores ya estaban. En este caso he añadido el modificador options de forma que tan sólo se podrán seleccionar los valores que ahí aparecen.
Esto tiene una ventaja y un inconveniente. El inconveniente es que sólo se podrán meter los valores que ahí definamos y la ventaja es que el usuario no se podrá equivocar metiendo valores erróneos.
Luego en el layout definimos lo siguiente en cuanto al snap.
local snap = fe.add_artwork( "snap", flw*0.0775, flh*0.253, flw*0.525, flh*0.486 );
// Animación sobre el eje X Aparece el logo desde la parte izquierda
local movex_cfg = {
when = Transition.ToNewSelection,
property = "x",
start = -100,
end = snap.x,
tween = Tween.Bounce,
time = config["snaptransition_ms"].tointeger()
}
animation.add( PropertyAnimation( snap, movex_cfg ) );
Podéis hacer la prueba y veréis que modificando el valor desde AM cambiará la velocidad con la que aparece el snap.
Si queremos dejar que el usuario introduzca manualmente el valor que quiera, dejaremos la definición inicial tal cual sigue:
class UserConfig {
</ label="SpinWheel", help="The artwork to spin", options="marquee,flyer,wheel" /> orbit_art="wheel";
</ label="Transition Time", help="Time in milliseconds for wheel spin." /> transition_ms="25";
[color=red] </ label="Transition snap Time", help="Time in milliseconds for snap." /> snaptransition_ms="2500";[/color]
}
Si os fijáis lo que he hecho es quitar el modificador
options.
Desde el código es decir, en el fichero layout.nut para poder recoger el valor que seleccionamos o introducimos en el menú de AM lo haremos con el siguiente código:
local config = fe.get_config();
que lo que hace (en este caso) es definir una variable local llamada config en la que meteremos los valores de configuración.
Para acceder luego al valor que necesitamos lo hacemos en la siguiente línea:
time = config["snaptransition_ms"].tointeger()
Si tenéis dudas preguntad y espero que os haya servido.