Tengo este menu lua pero cuando cambio y llego al final no tienes limite sigue el cambio pero en pantalla negra como puedo hacer un limite
script
miImagen1=Image.load("menu1.png") miImagen2=Image.load("menu2.png") miImagen3=Image.load("menu3.png") miImagen4=Image.load("menu4.png") current = 1 while true do pad = Controls.read() screen:clear() if current == 1 then Image:blit(0,0,miImagen1) end if current == 2 then Image:blit(0,0,miImagen2) end if current == 3 then Image:blit(0,0,miImagen3) end if current == 4 then Image:blit(0,0,miImagen4) end if pad:up() then current = current - 1 end if pad:down() then current = current + 1 end if pad:cross() and current == 1 then dofile("index.lua") end if pad:cross() and current == 2 then dofile("Multiplayer.lua") end if pad:cross() and current == 3 then dofile("option.lua") end if pad:cross() and current == 4 then System.Quit() end screen.waitVblankStart(5) screen.flip() end
CrackDevice!!! - http://crackdevice.com Solo colabora, entra y aclara sus dudas, todos sobre tu iDevice.
Solucionado
Gracias A todos los que me ayudaron
Simplificando con arrays
Supongo que Lua permite arrays y que serán con índice entre corchetes, pero vamos aunque cambie la sintaxis, esto es un consejo, porque este codigo con 20 opciones se vuelve infumable con tanto if then. Voy a hacerlo sin tener en cuenta la sintaxis (vuelvo a repetir que no se Lua), pero es para que se entienda la idea
De esta manera se simplifica mucho el código.
Por ultimo, se podría usar un array multimensional, que tuviera una relación imagen, texto, acción, etc. , de tal forma que las opciones solo se añadirian a ese array y no habría que tocar más el código. Aunque como no se el funcionamiento de Lua con arrays relacionales/multidimensionales, no pongo nada porque sino voy a liarla solo
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
Peuedes usar esto. --Si
Peuedes usar esto.
No cuesta nada agradecer!!!
Sencillo
Añade esto:
Así si estas en el final del menu y presinonas abajo de nuevo pasará automaticamente a la ocpión uno y viceversa.
O puedes añadir esto:
Así no pasaras a ninguna opción, solo quedará en la que esta actualmente.
Tutorial: Fabricando nuestro propio micrófono para la PSP.
Exclusivo de PSP.Scenebeta.com
Yo usaría esto : if current
Yo usaría esto :
¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.
Mi review: iPod Touch 4G
También
Así si llegas al final, vuelves al principio.
Saludos.
como pones que si no es
como pones que si no es cierto, current =1, si no pulsas abajo se va a poner a uno...
Uhmmm
Ese código va fallar, fíjate en la primera condición, cada vez que se pulse arriba (o mejor dicho cada vez que NO se pulse abajo), current se pondrá a 1
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
Tienes razón...
Me equivoqué.
Es:
el fallo es que puse los controles dentro del if con else.
Saludos.
Tampoco va a ir
Tienes mal la condición cuando current sea 4, se podrá a 5, lo cual dará error porque sólo hay 4 opciones.
Aquí aprovecho el código del autor del post (aunque no esté relacionado con esta respuesta) para hacer un comentario, porque veo que la mayoría tenéis la manía de usar los llamados número mágicos.
Un número mágico en programación, es una de las cosas que se tienen que evitar, con ellos, modificar o ampliar código puede ser una pesadilla, sobretodo si el que lo hace no es el autor original.
Un ejemplo de número mágico, es el 4 usado en el código, ese 4 se usa al comparar el up(), el down(), el cross(). Y ese número, no nos dice nada si miramos el código, aún peor. ¿que pasa si añadimos 1 opción más?. En el caso de el código de Arkanist (por poner un ejemplo), tendremos que modificar 2 lineas cambiado ese 4 por un 5. y eso habrá que hacerlo en muchas partes de código.
¿Cómo evitar los números magicos?. Fácil, cuando tengas un límite de algo, usa una variable o constante (según el caso) para especificarla. de esta forma sólo tendrás que cambiar el valor de dicha variable (como en el código que he puesto más arriba, que encima uso un bucle para leer las imágenes, sin preocuparme de cuantas son).
total_opciones = 4
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
Ok...
De nuevo erré, en vez de "<=" debí poner sólo "<".
Aunque hace un poco de tiempo que no toco la programación, haber si cuando se acabe de todo el curso vuelvo, se puede usar un array con las opciones para luego usar "#" para ir cambiando de opción, pero no lo recuerdo muy bien, tendria que volver a mirarme el codigo fuente de mi último juego.
Saludos.
PD: te doy 20 scenebitos por las correcciones y las explicaciones ;)