| Votar por el foro |  | | Web amiga |  | | | Parte7-Fragmentos de código Lua (Snippets) | Dom Jul 27, 2008 1:36 pm por Anonymous | Sencillo menú
El conocimiento no vale si no se comparte con los demás. Si estas empezando un nuevo proyecto en Lua y no tienes idea alguna de cómo hacer un bonito menú, sigue leyendo, ésto te interesa. En esta sección explicaré, paso a paso, cómo crear un sencillo menú a partir de imágenes. Sólo adáptalo a tu creación y listo. El código es nativo de Look Out!
Como expliqué el menú es a partir de imágenes (PNG), puedes empezar con imágenes simples, no muy elaboradas, sólo para ver cómo funciona.
Esto es muy parecido a una ilusión óptica, por lo tanto usaremos 2 imágenes; una tendrá marcada cierta opción, y la segunda tendra desmarcada la anterior y marcada otra.
El código nativo sólo opera con dos imágenes, si tu menú contiene más opciones adáptalo.
Cárgamos nuestras dos imágenes
miImagen1=Image.load("menu1.png")
miImagen2=Image.load("menu2.png")
Para realizar los cambios de las imágenes, necesitaremos otra variable, en este caso "current"
current=miImagen1
A current se le asigna la variable miImagen1. Esto lo explicaré más adelante.
while true do
pad = Controls.read()
screen:clear()
screen:blit(0,0,current)
Con este comando indicamos que se mostrará la variable current, y como a current le asignamos la variable miImagen1, se mostrará la imagen almacenada en miImagen1, es decir, menu1.png.
Lo siguiente establece el cambio de imágenes si apretamos cierto botón.
if pad:down() then
current=miImagen2
end
if pad:up() then
current=miImagen1
end
Si presionamos el Pad Digital Abajo, la variable current cambiará a miImagen2 (Recordemos que estaba establecida como miImagen1), y por lo tanto se mostrará la imágen almacenada en dicha variable (menu2.png).
Si presionamos el Pad Digital Arriba, la variable current cambiará a miImagen1, y por lo tanto se mostrará la imágen almacenada en dicha variable (menu1.png).
Ya no es necesario que volvamos a mostrar imágenes ya que ambas quedan almacenadas en la variable current, y siempre se muestra esa variable. Lo que hacemos, en pocas palabras, es cambiar la imagen que contiene current.
¿Qué es un menú sin opciones? Para que el menú abra otros códigos si se selecciona cierta opción necesitamos esto:
if pad:cross() and current==miImagen1 then
dofile("miScript1.lua")
end
Aquí se establece que si se presiona el botón X y en pantalla se está mostrando la imagen 1, se abrirá el script1.
if pad:cross() and current==miImagen2 then
dofile("miScript2.lua")
end
Aquí se establece que si se presiona el botón X y en pantalla se está mostrando la imagen 2, se abrirá el script 2.
Ahora sólo queda cerrar el bucle principal.
screen.waitVblankStart()
screen.flip()
end
Si quisieras agregar más imágenes basta con establecer sus respectivas variables y el siguiente condicional:
if pad:down() and current=miImagen2 then
current=miImagen3
end
Es prácticamente lo mismo, sólo que estableciendo que la imagen cambie sólo si current es igual a miImagen2, es decir que no cambiará a la imagen 3 si se está mostrando la imagen 1, únicamente lo hará si se está mostrando la imagen 2.
Lee bien y adapta el código a tu creación.
Por Tanos
| | Comentarios: 0 |
| | Estadísticas | Tenemos 3 miembros registrados. El último usuario registrado es nicog_777.
Nuestros miembros han publicado un total de 43 mensajes. en 42 argumentos.
| | ¿Quién está en línea ? | En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado Ninguno La mayor cantidad de usuarios en línea fue 4 el Miér Sep 03, 2008 10:53 am. |
|