bien, hoy en el descanso del instituto, aprovechando la hora libre que tenia, me he puesto a escribir el codigo para el menu.
mi intención, es que cada vez que pulsemos o abajo o arriba, las frases cambien de color para remarcar cual es la que tenemos seleccionada. Pero no consigo que la variable color cambie a Rojo o Blanco, sumandole o restandole 1.
EDITO! ahora he conseguido arrancarlo, pero no me aparece el menu, este es el mensaje: Attempt to index global nuevapartida (a nil value)
Vuelvo a EDITAR: vale, ya no me da los errores, ahora simplemente no me aparece el menu... T_T
Aqui dejo el codigo, haber si alguien me puede ayudar! muchas gracias! :)
os.cpu(333) rojo= color.new(255,0,0) blanco= color.new(0,0,0) font.load("res/fonts/nuevojuego.pgf") color= 1 if color== 2 then newgame.color= rojo loadgame.color.color= rojo extras.color= rojo end if color== 0 then newgame.color= blanco loadgame.color= blanco extras.color= blanco end newgame= {"Nueva partida",color} loadgame= {"Cargar partida",color} extras= {"Extras",color} function letrasmenucolor() screen.print(270,120,newgame[1],newgame.color) screen.print(270,100,loadgame[1],loadgame.color) screen.print(270,80,extras[1],extras.color) screen.flip() controls.read() newgame.color= color + 1 loadgame.color= color - 1 extras.color= color - 1 screen.flip() if controls.down() and newgame.color== 2 then newgame.color= color - 1 loadgame.color= color + 1 extras.color= color - 1 screen.flip() elseif controls.up() and newgame.color== 2 then newgame.color= color - 1 loadgame.color= color - 1 extras.color= color + 1 screen.flip() elseif controls.down() and loadgame.color== 2 then newgame.color= color - 1 loadgame.color= color - 1 extras.color= color + 1 screen.flip() elseif controls.up() and loadgame.color== 2 then newgame.color= color + 1 loadgame.color= color - 1 extras.color= color - 1 screen.flip() elseif controls.down() and extras.color== 2 then newgame.color= color + 1 cargarpartida.color= color - 1 extras.color= color - 1 screen.flip() elseif controls.up() and extras.color== 2 then newgame.color= color - 1 loadgame.color= color + 1 extras.color= color - 1 screen.flip() end end texto = "Bienvenido a Terrachrystalis \n Te espera un gran comienzo" dofile("RGSplashLib.lua") --libreria splash function textoguay() for i=1, texto:len() do screen.print(50,50,texto:sub(1,i)) os.sleep(0.05) screen.flip() end end textoguay() os.sleep(4) splash("res/splash/bluestartitulo.png",3000,4,"fade") while true do letrasmenucolor() end
En un par de proyectos:
Current: Fantasymind [|| ] PROGRESS: 10%
Next: FAR STARS
Twitter: @Cere_Ender
Ponlo así:function
Ponlo así:
EDITADO: Mírate esto: http://psp.scenebeta.com/node/81863#comment-669877
Editado: Crear hilos y comentarios duplicados incumple las Normas de la Comunidad, si necesita cambiar su comentario puede usar la opción de Editar. Antes de volver a postear por favor revise las Normas.| Rober Galarga
Quita las 4 líneas que tienes
Quita las 4 líneas que tienes después de controls.read en tu función letrasmenucolor, y prueba de nuevo.
no, no me aparece nada, se me
no, no me aparece nada, se me queda la pantalla en negro...
quiza sea por el while true do o algo asi?
Descartar lo del while true
Descartar lo del while true do pues todo lo que necesite estar en bucle ya lo tienes en la función y la función la tienes ubicada en el while true do
Administrador de www.SceneBeta.com y Android
La verdad es que me cuesta
La verdad es que me cuesta trabajo comprender tu code... te complicas mucho =/
Te dejo un pequeño menu, más sencillo, para que lo tomes de guía:
Este menu es muy práctico, porque si quieres más opciones sólo tienes que agregarlas en la tabla, sin modificar el resto del code. Si no entiendes algo, pregunta ;)
PD. 0xFF0000FF es lo mismo que color.new(255,0,0), sólo que así se desgasta menos el teclado xD
entiendo las tablas de
entiendo las tablas de opciones y colores, lo de la variable de la seleccion, pero lo de Focussed, #opciones, y local (que es?), y porque en la frase "if controls.press("up") and sel > 1 then sel = sel - 1 end --moverme hacia arriba en las opciones"
restas?
y ahora, si yo quiero que en la opcion seleccionada vaya a un lugar (nuevo juego, cargar partida o pantalla de extras) lo pongo en el while true do no?
En un par de proyectos:
Current: Fantasymind [|| ] PROGRESS: 10%
Next: FAR STARS
Twitter: @Cere_Ender
ok...
El "movimiento" se controla con dos condiciones dobles (nota que uso "and"), por qué? Para evitar errores de índice (tratar de acceder a un elemento que no existe en una tabla). Tal y como está el code, sel nunca será menor que 1, ni mayor que 3.
Lo último que mencionas, puedes hacerlo en el while como dices, o se podría definir una función que haga el trabajo sucio por ti (que analice en que opción presionaste un botón, y ejecute un determinado code). Incluso, con otra tabla bastaría... depende de cómo te acomode mejor ;)
perfecto! pongo este tema en
perfecto! pongo este tema en favoritos! asi me acordaré! :)
muchisimas gracias Rober!
aunque sigo sin comprender bien bien que hace focussed en esta función.
En un par de proyectos:
Current: Fantasymind [|| ] PROGRESS: 10%
Next: FAR STARS
Twitter: @Cere_Ender