function OPCIONES() -- defino lo que serán las opciones con esta función slTVOff() -- esto es para limpirar la pantalla luego lo comento mejor slInitSystem(TV_320x240,NULL,1) -- vuelvo a poner el SGL slTVOn() -- y enciendo, esto son nuevas librerías de SEGA que ahora explicaré slPrint("Esto serian las OPCIONES", 2, 2) -- Aqui estaría todo el código de las opciones pertinente while true do slSynch() end -- Lo meto en un bucle para que no salga de aquí, pero podríamos e incluso deberíamos poder regresar al menú principal, para no complicarlo más lo dejo así. end -- se acaba aquí la función OPCIONES function CREDITOS() -- Definimos la función CREDITOS, todo lo demás es igual slTVOff() slInitSystem(TV_320x240,NULL,1) slTVOn() slPrint("Esto serian los CREDITOS", 2, 2) while true do slSynch() end end function JUGAR() -- Ahora el juego en sí, que seria la función JUGAR slTVOff() slInitSystem(TV_320x240,NULL,1) slTVOn() slPrint("Esto seria el JUEGO en si", 2, 2) -- Aquí estaría todo el código y el meollo del juego while true do slSynch() end end local bucle = 1 -- Lo voy a meter en un bucle con esta variable para detectar la pulsación del mando slInitSystem(TV_320x240,NULL,1) -- Esto es lo primero que se va a ejecutar ya que hemos definido las funciones pero aun no hemos llamado a ninguna de ellas slPrint("----JUEGO TRAPERO----", 6, 5) -- Esto seria el Main Menu del juego típico slPrint("Imaginaos unos graficos que te cagas xD", 1, 10) while bucle < 2 do -- Le pongo una condición que será infinita porque nunca cambiaría y siempre será así, si sabéis alguna manera mejor de hacerlo... soy todo oídos! slPrint("Pulsa A para OPCIONES", 1, 19) slPrint("Pulsa X para CREDITOS", 1, 21) slPrint("Pulsa START para JUGAR", 1, 23) id,ext,data = Smpc_Peripheral(0) -- Detectamos lo que pulse el jugador como aprendimos en los otros ejemplos que puse if bit.band(data, PER_DGT_TA) == 0 then OPCIONES() -- Si pulsa A lo mandamos a la función OPCIONES end if bit.band(data, PER_DGT_TX) == 0 then CREDITOS() -- Si pulsa X lo mandamos a la funcion CREDITOS, end if bit.band(data, PER_DGT_ST) == 0 then JUGAR() -- Fijaos que estamos usando funciones combinandolas con condicionales, aquí lo mando a el juego en sí que sería la función JUGAR que definimos antes end end -- fin del while eterno en el que le he metido para que este todo el rato mostrando el menú principal y esperando que pulsemos alguna cosa while true do slSynch() end -- lo de siempre