Programación
Índice­Portal­FAQ­Buscar­Miembros­Grupos de Usuarios­Registrarse­Conectarse
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Votar por el foro
Web amiga
Últimos temas
» Como instalar compilador de C sin problemas (PSPDev)
Lun Oct 06, 2008 10:50 pm por nicog_777

» Sonido de PSP
Dom Jul 27, 2008 2:13 pm por Anonymous

» Controles de la psp
Dom Jul 27, 2008 2:09 pm por Anonymous

» Animaciones
Dom Jul 27, 2008 2:05 pm por Anonymous

» Prerequisitos y consejos
Dom Jul 27, 2008 2:00 pm por Anonymous

» Parte11-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:56 pm por Anonymous

» Parte10-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:51 pm por Anonymous

» Parte9-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:48 pm por Anonymous

» Parte8-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:45 pm por Anonymous

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.