Alguien me podria dar 1 ejemplo de menu con 3 imagenes programado en lua? he leido 1 tutorial que havia aqui en scenebeta pero esta mal y encima se han liado mazo. por favor ayudaaa. Grax De antemano.
-- carga de imágenes
menu1 = image.load("menu1.png")
menu2 = image.load("menu2.png")
menu3 = image.load("menu3.png")-- fin de carga de imágenes
op =1-- Opción inicial, 1
oldpad = Controls.read()-- pon esto siempre que quieras leer una sola pulsación (la explicación real es laaarga...)whiletruedo
screen:clear()
pad = Controls.read()-- lees controles-- Desplazamiento por el menúif pad:up()andnot oldpad:up()then-- si recién presionas arriba...
op =math.max(op-1,1)-- op será el máximo entre op-1 (puede dar negativo) y 1, así si te pasas de largo, se queda en 1elseif pad:down()andnot oldpad:down()then-- si recién presionas abajo...
op =math.min(op+1,3)-- lo mismo, pero esta vez el mínimo, por si te pasas de las 3 opciones...end-- Mostrar menú actual...if op==1then
image.blit(0,0,menu1)-- supongo que cada imagen mide 480x272...elseif op==2then
image.blit(0,0,menu2)elseif op==3then
image.blit(0,0,menu3)end
screen.flip()end
Es muy probable que te de error en alguna línea... prueba cambiando de "." a ":" xD
function LimpiarRam() -- Importante limpiar ram menu1 = nil menu2 = nil menu3 = nil menu4 = nil System.memclean() collectgarbage() end
current = menu1
while true do pad = Controls.read() screen:clear() screen:blit(0,0,current) if pad:down() and oldpad:down() ~= pad:down() and current == menu1 then current = menu2 elseif pad:down() and oldpad:down() ~= pad:down() and current == menu2 then current = menu3 elseif pad:down() and oldpad:down() ~= pad:down() and current == menu3 then current = menu4 elseif pad:up() and oldpad:up() ~= pad:up() and current == menu4 then current = menu3 elseif pad:up() and oldpad:up() ~= pad:up() and current == menu3 then current = menu2 elseif pad:up() and oldpad:up() ~= pad:up() and current == menu2 then current = menu1 elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu1 then LimpiarRam() -- hace que te limpir la ram antes de cargar otro script dofile("XXXXXXX.lua") elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu2 then LimpiarRam() dofile("XXXXXXX.lua") elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu then LimpiarRam() dofile("XXXXXXX.lua") elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu4 then System.Quit() end oldpad = pad screen:flip() screen.waitVblankStart() end
En mi opinión lo que tu has hecho es algo engorroso y lioso. En vez de usar un string o le que sea lo que le has asignado a current, deberías usar un numero, que cada vez que se pulse X botón sume uno y pulsando Y botón reste uno.
Luego, haciendo unos ifs como if current==1 then screen:print(0,0,"opcion 1", color) elseif current==2 then... y así sucesivamente.
Ya esta
Ya he resuelto el problema. Muchas Gracias a todos por vuestra ayuda.
Me da gusto
Me da gusto que este resuelto cualquier cosa ya sabes aqui estamos....saludos
Mp
Bueno amigo ya te eh contestado los Mp que me has enviado con la solucion XD un saludo
A ver...
Espero acordarme de como va HM7 xD
Es muy probable que te de error en alguna línea... prueba cambiando de "." a ":" xD
Saludos!
PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]
07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD
Recuerda: Sé el intérprete -_-
Bien
Bueno amigo aqui mi compañero sting ya te ayudo XD solo cambia y agrega lo que le hace falta en el lua hmv2 cualuier duda aqui estamos
Mis Homebrew´s
Uno con cuatro ;)
menu1 = Image.load("Imagenes/menu1.jpg")
menu2 = Image.load("Imagenes/menu2.jpg")
menu3 = Image.load("Imagenes/menu3.jpg")
menu4 = Image.load("Imagenes/menu4.jpg")
function LimpiarRam() -- Importante limpiar ram
menu1 = nil menu2 = nil
menu3 = nil menu4 = nil
System.memclean()
collectgarbage()
end
current = menu1
while true do
pad = Controls.read()
screen:clear()
screen:blit(0,0,current)
if pad:down() and oldpad:down() ~= pad:down() and current == menu1 then
current = menu2
elseif pad:down() and oldpad:down() ~= pad:down() and current == menu2 then
current = menu3
elseif pad:down() and oldpad:down() ~= pad:down() and current == menu3 then
current = menu4
elseif pad:up() and oldpad:up() ~= pad:up() and current == menu4 then
current = menu3
elseif pad:up() and oldpad:up() ~= pad:up() and current == menu3 then
current = menu2
elseif pad:up() and oldpad:up() ~= pad:up() and current == menu2 then
current = menu1
elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu1 then
LimpiarRam() -- hace que te limpir la ram antes de cargar otro script
dofile("XXXXXXX.lua")
elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu2 then
LimpiarRam()
dofile("XXXXXXX.lua")
elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu then
LimpiarRam()
dofile("XXXXXXX.lua")
elseif pad:cross() and oldpad:cross() ~= pad:cross() and current == menu4 then
System.Quit()
end
oldpad = pad
screen:flip()
screen.waitVblankStart()
end
se que le servira a mas de 1 saludos a todos ;)
En mi opinión lo que tu has
En mi opinión lo que tu has hecho es algo engorroso y lioso. En vez de usar un string o le que sea lo que le has asignado a current, deberías usar un numero, que cada vez que se pulse X botón sume uno y pulsando Y botón reste uno.
Luego, haciendo unos ifs como if current==1 then screen:print(0,0,"opcion 1", color) elseif current==2 then... y así sucesivamente.
SceneBET y PSP Euskaraz 2... ¿Pronto?
Toda la razón para unai
Estoy con unai, el código expuesto es demasiado lioso, hay más maneras de reducirlo y obtener el mismo resultado...
Eso si pero para mi funciona
Eso si pero para mi funciona xD saludos.
quieres que sea en que estilo
quieres que sea en que estilo explicate mejor si es que cada imagen muestre una opcion yo te puedo ayudar
si asi
si asi