Comenzamos el sexto capítulo de iniciación a lua desarrollando un videojuego, dedicado a la programación y diseño de los menús de nuestro juego, paso previo al gameplay. Por problemas de tiempo y del ordenador esta entrega es menos extensa de lo habitual, pero se compensará con una mayor extensión de la siguiente.

Continuamos con el desarrollo de nuestro juego, en este capítulo llegamos a la programación y organización de los menús. Antes de empezar debemos recordar que en el capítulo 4 decidimos que nuestro menú principal ofrecería cuatro opciones: jugar, instrucciones, créditos y salir.

En primer lugar debemos determinar en que estado de juegos estamos: menú, juego y estadísticas. Además debemos definir en que menú estamos dentro del programa. Para ello asignaremos un número a cada estado y a cada menú o submenú, así dentro de nuestro programa podremos movernos entre menús mediante la variación del valor de una variable numérica y determinaremos el estado de la misma forma. Por lo tanto necesitamos añadir otra variable de tipo número a nuestro array Juego a la que le asignaremos el sufijo Menu: Juego.Menu. Al menú principal le asignaremos lógicamente el 1 y al estado menú el número 1 (recordad que la escena de entrada recibe el 0). Estas condiciones las traducimos en: mientras estemos en el estado menú y mientras estemos en el menú principal, es decir mediante iteraciones while:

While Juego.Estado == 0 do
While Juego.Menu == 1 do
--Estamos en el menu principal
end
end

De esta forma podemos determinar todos los menús y submenús. De momento tan sólo nos preocuparemos por los dos primeros niveles Menú Principal y Jugar, Instrucciones, Créditos y Salir. A partir de ahora sus números quedarán asignados tal y como se muestra en el gráfico.

Una vez decidida la estructuración de los menús podemos pasar a su contenido y funcionamiento. De entrada ya sabemos que recibirán la estructura básica para leer los controles y mostrar información por pantalla que definimos en el capítulo anterior. Deberemos saber en que opción del menú nos encontramos tanto para resaltar al jugador que está seleccionando como para determinar que camino tomar. Este estado lo almacenaremos también como un número dentro de nuestro array Juego y recibirá el nombre de OpcionMenu: Juego.OpcionMenu. Quedando nuestro array determinado por estos elementos hasta el momento.

Juego = {}
Juego.Estado
Juego.Menu
Juego.OpcionMenu

Al analizar las opciones del menú principal y lo que lo componen llegamos a la conclusión de que de nuevo son elementos de una unidad con un mismo sentido (Opciones del Menú Principal) y que por lo tanto almacenaremos en un array. Este array recibirá el nombre de OpMenuPrincipal y estará compuesto por las cadenas de texto (string) que almacenarán los nombres de las opciones.

OpMenuPrincipal = {}
OpMenuPrincipal[1] = “Jugar”
OpMenuPrincipal[2] = “Instrucciones”
OpMenuPrincipal[3] = “Creditos”
OpMenuPrincipal[4] = “Salir”

Recordad que la estructura de declaración superior es esquivalente a la siguiente:

OpMenuPrincipal = {“Jugar”, “Instrucciones”, “Creditos”, “Salir”}

Otras entregas del curso:

Capítulos 1 y 2

Capítulo 3

Capítulo 4

Capítulo 5 (I)

Capítulo 5 (II)

Capítulo 5 (III)

Capítulo 6 (I)